From 08c75569603411b2d8c5475d17fef2d2639dc47c Mon Sep 17 00:00:00 2001 From: jeezft Date: Sat, 10 Jan 2026 04:47:04 +0300 Subject: [PATCH] added device support --- api/client.go | 10 ++++++---- api/fiscal.go | 3 ++- examples.go | 7 ++++--- vchasno.go | 7 +++---- 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/api/client.go b/api/client.go index 9f0b598..a7d55fa 100644 --- a/api/client.go +++ b/api/client.go @@ -3,9 +3,10 @@ package api import "resty.dev/v3" type Client struct { - token string - resty *resty.Client - apiBaseURL string + token string + device string + resty *resty.Client + apiBaseURL string fiscalEndpoint string } @@ -18,9 +19,10 @@ func NewClient(token string) *Client { } } -func NewDMClient(token string, dmURL string) *Client { +func NewDMClient(token, dmURL, device string) *Client { return &Client{ token: token, + device: device, resty: resty.New(), apiBaseURL: dmURL, fiscalEndpoint: "/dm/fiscal", diff --git a/api/fiscal.go b/api/fiscal.go index a6aa6d1..7eadc8a 100644 --- a/api/fiscal.go +++ b/api/fiscal.go @@ -8,7 +8,8 @@ import ( ) func (c *Client) executeRequest(ctx context.Context, request FiscalRequest, response interface{}) error { - //execute request with json body in request + request.Device = c.device + reqJson, err := json.Marshal(request) if err != nil { return fmt.Errorf("failed to marshal request: %w", err) diff --git a/examples.go b/examples.go index 5bb5d72..b237888 100644 --- a/examples.go +++ b/examples.go @@ -7,9 +7,10 @@ import ( func ExampleBasicUsage() { client := NewClient(Config{ - Token: "your-token", - Cashier: "Иванов", - Source: "parking", + Token: "your-token", + Cashier: "Иванов", + Source: "parking", + CustomURL: "DM URL/", }) ctx := context.Background() diff --git a/vchasno.go b/vchasno.go index 7364f72..940ce76 100644 --- a/vchasno.go +++ b/vchasno.go @@ -25,13 +25,13 @@ type Client struct { defaults *DefaultParams } -// !! If you are using Device Manager, set the CustomURL to "http(s)://HOST/api/v3". type Config struct { Token string Cashier string Source string Defaults *DefaultParams CustomURL string + Device string } type DefaultParams struct { @@ -67,12 +67,11 @@ func NewClient(config Config) *Client { defaults.DefaultTimeout = 30 * time.Second } - apicfg := &api.Client{} - + var apicfg *api.Client if config.CustomURL == "" { apicfg = api.NewClient(config.Token) } else { - apicfg = api.NewDMClient(config.Token, config.CustomURL) + apicfg = api.NewDMClient(config.Token, config.CustomURL, config.Device) } return &Client{