diff --git a/client.go b/client.go index 4ef23af..d47ce2e 100644 --- a/client.go +++ b/client.go @@ -35,6 +35,7 @@ type TransportError struct { type ClientInterface interface { GetBalance(ctx context.Context, req *GetBalanceQuery) (*GetBalanceReply, error) + GetClientOffers(ctx context.Context, req *GetClientOffersQuery) (*GetClientOffersReply, error) NewClient(ctx context.Context, req *NewClientQuery) (*NewClientReply, error) UpdateClient(ctx context.Context, req *UpdateClientQuery) (*UpdateClientReply, error) DeleteClient(ctx context.Context, req *DeleteClientQuery) (*DeleteClientReply, error) @@ -153,6 +154,18 @@ func (c *Client) GetBalance(ctx context.Context, req *GetBalanceQuery) (*GetBala return &resp, nil } +func (c *Client) GetClientOffers(ctx context.Context, req *GetClientOffersQuery) (*GetClientOffersReply, error) { + respBody, err := c.request(ctx, "/get-client-offers", req) + if err != nil { + return nil, err + } + var resp GetClientOffersReply + if err = json.Unmarshal(respBody, &resp); err != nil { + return nil, err + } + return &resp, nil +} + func (c *Client) NewClient(ctx context.Context, req *NewClientQuery) (*NewClientReply, error) { respBody, err := c.request(ctx, "/new-client", req) if err != nil { diff --git a/models.go b/models.go index f11d2b8..fb06505 100644 --- a/models.go +++ b/models.go @@ -95,6 +95,24 @@ type GetBalanceReplyLevel struct { ProgressPercent *int `json:"progressPercent,omitempty"` } +// get-client-offers + +type GetClientOffersQuery struct { + Client ClientQuery `json:"client"` +} + +type GetClientOffersReply struct { + Counters []GetClientOffersReplyCounter `json:"counters"` +} + +type GetClientOffersReplyCounter struct { + Name string `json:"name"` + Value int `json:"value"` + TargetValue int `json:"targetValue"` + TargetDate *time.Time `json:"targetDate,omitempty"` + Coupons int `json:"coupons"` +} + type Child struct { Name string `json:"name,omitempty"` Birthdate string `json:"birthdate,omitempty"`