btrz-api-client 8.31.0 → 8.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (93) hide show
  1. package/.cursor/rules/jsdoc-endpoints.mdc +1 -1
  2. package/lib/client-standalone-min.js +3 -3
  3. package/lib/client.js +5 -0
  4. package/lib/endpoints/accounts/agencies.js +52 -0
  5. package/lib/endpoints/accounts/application-settings.js +19 -18
  6. package/lib/endpoints/accounts/applications.js +8 -7
  7. package/lib/endpoints/accounts/customers.js +27 -24
  8. package/lib/endpoints/accounts/domains.js +16 -11
  9. package/lib/endpoints/accounts/email-settings.js +22 -18
  10. package/lib/endpoints/accounts/email-templates.js +8 -4
  11. package/lib/endpoints/accounts/exchange-rates.js +12 -7
  12. package/lib/endpoints/accounts/exchange-receipts.js +10 -6
  13. package/lib/endpoints/accounts/external-customers.js +50 -0
  14. package/lib/endpoints/accounts/goal-settings.js +8 -6
  15. package/lib/endpoints/accounts/images.js +14 -13
  16. package/lib/endpoints/accounts/interline.js +35 -27
  17. package/lib/endpoints/accounts/journey-prices-settings.js +8 -6
  18. package/lib/endpoints/accounts/lexicons.js +13 -13
  19. package/lib/endpoints/accounts/market-pricing-settings.js +7 -6
  20. package/lib/endpoints/accounts/multiproduct-sales-settings.js +7 -6
  21. package/lib/endpoints/accounts/network.js +28 -13
  22. package/lib/endpoints/accounts/operation-settings.js +8 -6
  23. package/lib/endpoints/accounts/people-lookups.js +17 -17
  24. package/lib/endpoints/accounts/point-to-point-settings.js +6 -6
  25. package/lib/endpoints/accounts/print-settings.js +9 -6
  26. package/lib/endpoints/accounts/print-templates.js +37 -21
  27. package/lib/endpoints/accounts/printers.js +10 -4
  28. package/lib/endpoints/accounts/rms-settings.js +19 -11
  29. package/lib/endpoints/accounts/salesforce-settings.js +8 -6
  30. package/lib/endpoints/accounts/shift-settings.js +7 -6
  31. package/lib/endpoints/accounts/shifts.js +13 -9
  32. package/lib/endpoints/accounts/sms-templates.js +28 -19
  33. package/lib/endpoints/accounts/sub-print-templates.js +5 -3
  34. package/lib/endpoints/accounts/ticket-movement-settings.js +8 -5
  35. package/lib/endpoints/accounts/travellers.js +18 -12
  36. package/lib/endpoints/accounts/trusted-machines.js +11 -8
  37. package/lib/endpoints/accounts/twilio-settings.js +8 -5
  38. package/lib/endpoints/accounts/users.js +105 -63
  39. package/lib/endpoints/accounts/verified-emails.js +130 -0
  40. package/lib/endpoints/accounts/websales-config.js +7 -5
  41. package/lib/endpoints/coltrane/healthcheck.js +35 -0
  42. package/lib/endpoints/coltrane/info.js +35 -0
  43. package/lib/endpoints/coltrane/paths.js +17 -13
  44. package/package.json +1 -1
  45. package/src/client.js +5 -0
  46. package/src/endpoints/accounts/agencies.js +40 -0
  47. package/src/endpoints/accounts/application-settings.js +19 -18
  48. package/src/endpoints/accounts/applications.js +8 -7
  49. package/src/endpoints/accounts/customers.js +27 -24
  50. package/src/endpoints/accounts/domains.js +16 -11
  51. package/src/endpoints/accounts/email-settings.js +22 -18
  52. package/src/endpoints/accounts/email-templates.js +8 -4
  53. package/src/endpoints/accounts/exchange-rates.js +12 -7
  54. package/src/endpoints/accounts/exchange-receipts.js +10 -6
  55. package/src/endpoints/accounts/external-customers.js +37 -0
  56. package/src/endpoints/accounts/goal-settings.js +8 -6
  57. package/src/endpoints/accounts/images.js +14 -13
  58. package/src/endpoints/accounts/interline.js +35 -28
  59. package/src/endpoints/accounts/journey-prices-settings.js +8 -6
  60. package/src/endpoints/accounts/lexicons.js +13 -13
  61. package/src/endpoints/accounts/market-pricing-settings.js +7 -6
  62. package/src/endpoints/accounts/multiproduct-sales-settings.js +7 -6
  63. package/src/endpoints/accounts/network.js +28 -14
  64. package/src/endpoints/accounts/operation-settings.js +8 -6
  65. package/src/endpoints/accounts/people-lookups.js +17 -17
  66. package/src/endpoints/accounts/point-to-point-settings.js +6 -6
  67. package/src/endpoints/accounts/print-settings.js +9 -7
  68. package/src/endpoints/accounts/print-templates.js +31 -19
  69. package/src/endpoints/accounts/printers.js +10 -5
  70. package/src/endpoints/accounts/rms-settings.js +19 -11
  71. package/src/endpoints/accounts/salesforce-settings.js +8 -6
  72. package/src/endpoints/accounts/shift-settings.js +7 -6
  73. package/src/endpoints/accounts/shifts.js +13 -9
  74. package/src/endpoints/accounts/sms-templates.js +28 -19
  75. package/src/endpoints/accounts/sub-print-templates.js +5 -3
  76. package/src/endpoints/accounts/ticket-movement-settings.js +8 -5
  77. package/src/endpoints/accounts/travellers.js +18 -12
  78. package/src/endpoints/accounts/trusted-machines.js +11 -8
  79. package/src/endpoints/accounts/twilio-settings.js +8 -5
  80. package/src/endpoints/accounts/users.js +42 -5
  81. package/src/endpoints/accounts/verified-emails.js +100 -0
  82. package/src/endpoints/accounts/websales-config.js +7 -5
  83. package/src/endpoints/coltrane/healthcheck.js +28 -0
  84. package/src/endpoints/coltrane/info.js +28 -0
  85. package/src/endpoints/coltrane/paths.js +17 -13
  86. package/test/endpoints/accounts/agencies.test.js +58 -0
  87. package/test/endpoints/accounts/external-customers.test.js +62 -0
  88. package/test/endpoints/accounts/users.js +10 -0
  89. package/test/endpoints/accounts/verified-emails.test.js +35 -0
  90. package/test/endpoints/coltrane/healthcheck.test.js +13 -0
  91. package/test/endpoints/coltrane/info.test.js +13 -0
  92. package/types/endpoints/accounts/users.d.ts +2 -1
  93. package/types/endpoints/accounts/verified-emails.d.ts +19 -0
@@ -4,11 +4,11 @@ const {
4
4
  } = require("./../endpoints_helpers.js");
5
5
 
6
6
  /**
7
- * Query params for GET /people-lookups (btrz-api-accounts). See get-handler getSpec().
7
+ * Query params for GET /people-lookups (btrz-api-accounts). Optional filters; when provided only matching people are returned.
8
8
  * @typedef {Object} PeopleLookupsListQuery
9
9
  * @property {string} [dynamicFormId] - If provided, only include this dynamic form's data in response
10
10
  * @property {string} [documentNumber] - Document number to search for
11
- * @property {string} [documentTypeId] - Document type id to search for
11
+ * @property {string} [documentTypeId] - Document type id (ObjectId) to search for
12
12
  * @property {string} [email] - Email to search for
13
13
  * @property {string} [customerNumber] - Customer number to search for
14
14
  * @property {string} [phone] - Phone to search for
@@ -29,14 +29,14 @@ const {
29
29
  */
30
30
  function peopleLookupsFactory({client, internalAuthTokenProvider}) {
31
31
  /**
32
- * GET /people-lookups - list people lookups.
32
+ * GET /people-lookups list people lookups (paginated). Requires BETTEREZ_APP audience.
33
33
  * @param {Object} opts
34
34
  * @param {string} [opts.token] - API key
35
35
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
36
36
  * @param {PeopleLookupsListQuery} [opts.query] - Query params (dynamicFormId, documentNumber, documentTypeId, email, customerNumber, phone)
37
37
  * @param {string} [opts.providerId] - Provider id (ObjectId); merged into query for provider context
38
38
  * @param {Object} [opts.headers] - Optional headers
39
- * @returns {Promise<import("axios").AxiosResponse>}
39
+ * @returns {Promise<import("axios").AxiosResponse<{ people: object[], totalRecords: number, page?: number, pageSize?: number }>>}
40
40
  */
41
41
  function all({token, jwtToken, query, headers, providerId}) {
42
42
  const query_ = providerId ? {...query, providerId} : query;
@@ -48,15 +48,15 @@ function peopleLookupsFactory({client, internalAuthTokenProvider}) {
48
48
  }
49
49
 
50
50
  /**
51
- * GET /people-lookups/:personId - get a person lookup.
51
+ * GET /people-lookups/:personId get a single person lookup by id. Returns 404 if not found. Requires BETTEREZ_APP audience.
52
52
  * @param {Object} opts
53
53
  * @param {string} [opts.token] - API key
54
54
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
55
- * @param {string} opts.personId - Person id (ObjectId)
55
+ * @param {string} opts.personId - Person id (24 hex ObjectId)
56
56
  * @param {PeopleLookupGetByIdQuery} [opts.query] - Query params: dynamicFormId
57
57
  * @param {string} [opts.providerId] - Provider id (ObjectId); merged into query for provider context
58
58
  * @param {Object} [opts.headers] - Optional headers
59
- * @returns {Promise<import("axios").AxiosResponse>}
59
+ * @returns {Promise<import("axios").AxiosResponse<{ person: object }>>}
60
60
  */
61
61
  function getById({token, jwtToken, query, headers, personId, providerId}) {
62
62
  const query_ = providerId ? {...query, providerId} : query;
@@ -69,15 +69,15 @@ function peopleLookupsFactory({client, internalAuthTokenProvider}) {
69
69
  }
70
70
 
71
71
  /**
72
- * PUT /people-lookups/:personId - update a person lookup. API getSpec() does not define query params.
72
+ * PUT /people-lookups/:personId update a person lookup. Emits peopleLookups.updated webhook. Requires BETTEREZ_APP audience.
73
73
  * @param {Object} opts
74
74
  * @param {string} [opts.token] - API key
75
75
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
76
- * @param {string} opts.personId - Person id (ObjectId)
77
- * @param {Object} opts.person - Person payload
76
+ * @param {string} opts.personId - Person id (24 hex ObjectId)
77
+ * @param {Object} opts.person - Person payload (PeopleLookupPutData: documentTypeId, documentNumber, firstName, lastName, email, phone, dynamicForms, etc.)
78
78
  * @param {string} [opts.providerId] - Provider id (ObjectId); sent as query for provider context
79
79
  * @param {Object} [opts.headers] - Optional headers
80
- * @returns {Promise<import("axios").AxiosResponse>}
80
+ * @returns {Promise<import("axios").AxiosResponse<{ person: object }>>}
81
81
  */
82
82
  function update({jwtToken, token, personId, person, headers, providerId}) {
83
83
  const query = providerId ? {providerId} : {};
@@ -96,14 +96,14 @@ function peopleLookupsFactory({client, internalAuthTokenProvider}) {
96
96
  }
97
97
 
98
98
  /**
99
- * POST /people-lookups - create a person lookup. API getSpec() does not define query params.
99
+ * POST /people-lookups create a person lookup. Emits peopleLookups.created webhook. Requires BETTEREZ_APP audience. Body requires documentTypeId and documentNumber.
100
100
  * @param {Object} opts
101
101
  * @param {string} [opts.token] - API key
102
102
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
103
- * @param {Object} opts.person - Person payload
103
+ * @param {Object} opts.person - Person payload (PeopleLookupPostData: documentTypeId, documentNumber required; firstName, lastName, email, phone, dynamicForms, etc.)
104
104
  * @param {string} [opts.providerId] - Provider id (ObjectId); sent as query for provider context
105
105
  * @param {Object} [opts.headers] - Optional headers
106
- * @returns {Promise<import("axios").AxiosResponse>}
106
+ * @returns {Promise<import("axios").AxiosResponse<{ person: object }>>}
107
107
  */
108
108
  function create({jwtToken, token, person, headers, providerId}) {
109
109
  const query = providerId ? {providerId} : {};
@@ -122,13 +122,13 @@ function peopleLookupsFactory({client, internalAuthTokenProvider}) {
122
122
  }
123
123
 
124
124
  /**
125
- * DELETE /people-lookups/:personId - remove a person lookup. API does not accept query params.
125
+ * DELETE /people-lookups/:personId remove a person lookup. Emits peoplelookups.deleted webhook. Returns 404 if person not found. Requires BETTEREZ_APP audience.
126
126
  * @param {Object} opts
127
127
  * @param {string} [opts.token] - API key
128
128
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
129
- * @param {string} opts.personId - Person id (ObjectId)
129
+ * @param {string} opts.personId - Person id (24 hex ObjectId)
130
130
  * @param {Object} [opts.headers] - Optional headers
131
- * @returns {Promise<import("axios").AxiosResponse>}
131
+ * @returns {Promise<import("axios").AxiosResponse<{ personId: string }>>}
132
132
  */
133
133
  function remove({personId, token, jwtToken, headers}) {
134
134
  return client({
@@ -3,7 +3,7 @@ const {
3
3
  } = require("../endpoints_helpers.js");
4
4
 
5
5
  /**
6
- * Factory for point-to-point-settings API (btrz-api-accounts).
6
+ * Factory for point-to-point-settings API (btrz-api-accounts). Requires user logged in to backoffice app.
7
7
  * @param {Object} deps
8
8
  * @param {import("axios").AxiosInstance} deps.client
9
9
  * @param {{ getToken: function(): string }} [deps.internalAuthTokenProvider]
@@ -11,12 +11,12 @@ const {
11
11
  */
12
12
  function pointToPointSettingsFactory({client, internalAuthTokenProvider}) {
13
13
  /**
14
- * GET /point-to-point-settings - get point-to-point settings. API does not accept query params.
14
+ * GET /point-to-point-settings get point-to-point settings for the current account. No query params.
15
15
  * @param {Object} opts
16
16
  * @param {string} [opts.token] - API key
17
17
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
18
18
  * @param {Object} [opts.headers] - Optional headers
19
- * @returns {Promise<import("axios").AxiosResponse>}
19
+ * @returns {Promise<import("axios").AxiosResponse<{ pointToPointSettings: object }>>}
20
20
  */
21
21
  function get({token, jwtToken, headers}) {
22
22
  return client({
@@ -26,13 +26,13 @@ function pointToPointSettingsFactory({client, internalAuthTokenProvider}) {
26
26
  }
27
27
 
28
28
  /**
29
- * PUT /point-to-point-settings - update point-to-point settings. API does not accept query params.
29
+ * PUT /point-to-point-settings update settings. Body: useOnlySpecificFareTable (boolean) required.
30
30
  * @param {Object} opts
31
31
  * @param {string} [opts.token] - API key
32
32
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
33
- * @param {Object} opts.pointToPointSettings - Settings payload
33
+ * @param {{ useOnlySpecificFareTable: boolean }} opts.pointToPointSettings - Settings payload (useOnlySpecificFareTable required)
34
34
  * @param {Object} [opts.headers] - Optional headers
35
- * @returns {Promise<import("axios").AxiosResponse>}
35
+ * @returns {Promise<import("axios").AxiosResponse<{ pointToPointSettings: object }>>}
36
36
  */
37
37
  function update({token, jwtToken, pointToPointSettings, headers}) {
38
38
  return client({
@@ -11,28 +11,30 @@ const {
11
11
  */
12
12
  function printSettingsFactory({client, internalAuthTokenProvider}) {
13
13
  /**
14
- * GET /print-settings - list/get print settings. API does not accept query params.
14
+ * GET /print-settings get print settings for the current account. No query params.
15
15
  * @param {Object} opts
16
16
  * @param {string} [opts.token] - API key
17
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
18
+ * @param {Object} [opts.query] - Optional query params
17
19
  * @param {Object} [opts.headers] - Optional headers
18
- * @returns {Promise<import("axios").AxiosResponse>}
20
+ * @returns {Promise<import("axios").AxiosResponse<{ printSettings: object }>>}
19
21
  */
20
- function all({token, query, headers}) {
22
+ function all({token, jwtToken, query, headers}) {
21
23
  return client({
22
24
  url: "/print-settings",
23
25
  params: query,
24
- headers: authorizationHeaders({token, internalAuthTokenProvider, headers})
26
+ headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers})
25
27
  });
26
28
  }
27
29
 
28
30
  /**
29
- * PUT /print-settings - update print settings. API does not accept query params.
31
+ * PUT /print-settings update print settings. Emits printsettings.updated webhook. Requires BETTEREZ_APP.
30
32
  * @param {Object} opts
31
33
  * @param {string} [opts.token] - API key
32
34
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
33
- * @param {Object} opts.printSettings - Print settings payload
35
+ * @param {Object} opts.printSettings - Print settings payload (PrintSettingsPutData)
34
36
  * @param {Object} [opts.headers] - Optional headers
35
- * @returns {Promise<import("axios").AxiosResponse>}
37
+ * @returns {Promise<import("axios").AxiosResponse<{ printSettings: object }>>}
36
38
  */
37
39
  function update({jwtToken, token, printSettings, headers}) {
38
40
  return client({
@@ -1,3 +1,4 @@
1
+ /* eslint-disable max-len */
1
2
  const {
2
3
  authorizationHeaders
3
4
  } = require("./../endpoints_helpers.js");
@@ -15,6 +16,7 @@ const {
15
16
  * @property {string} [sort] - relevance | natural | createdAsc | createdDesc | updatedAsc | updatedDesc
16
17
  * @property {string} [templateCollectionId] - default | epsontmt88v | zebralp2844 | zebragx420t
17
18
  * @property {string} [status] - draft | published
19
+ * @property {string} [agencyId] - Filter sub-templates for this agency (ObjectId)
18
20
  * @property {string} [mainTemplateAccountId] - Filter by source provider (ObjectId)
19
21
  * @property {number} [page] - 1-based page for pagination
20
22
  */
@@ -43,47 +45,54 @@ const {
43
45
  */
44
46
  function printSettingsFactory({client, internalAuthTokenProvider}) {
45
47
  /**
46
- * GET /print-templates - list print templates.
48
+ * GET /print-templates - list print templates (paginated when page is provided).
47
49
  * @param {Object} opts
48
50
  * @param {string} [opts.token] - API key
49
- * @param {PrintTemplatesListQuery} [opts.query] - Query params (providerId, type, channel, consumer, format, etc.)
51
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
52
+ * @param {PrintTemplatesListQuery} [opts.query] - Query params (providerId, type, channel, agencyId, etc.)
50
53
  * @param {Object} [opts.headers] - Optional headers
51
- * @returns {Promise<import("axios").AxiosResponse>}
54
+ * @returns {Promise<import("axios").AxiosResponse<{ printTemplates: object[], next?: string, previous?: string, totalRecords?: number, page?: number }>>}
55
+ * When page is used, response includes next, previous, totalRecords, page.
56
+ * @throws {import("axios").AxiosError} 400 WRONG_DATA, INVALID_PRODUCT_ID; 401; 500
52
57
  */
53
- function all({token, query, headers}) {
58
+ function all({token, jwtToken, query = {}, headers}) {
54
59
  return client({
55
60
  url: "/print-templates",
56
61
  params: query,
57
- headers: authorizationHeaders({token, internalAuthTokenProvider, headers})
62
+ headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers})
58
63
  });
59
64
  }
60
65
 
61
66
  /**
62
- * GET /print-templates/:printTemplateId - get a print template.
67
+ * GET /print-templates/:printTemplateId - get a single print template.
63
68
  * @param {Object} opts
64
69
  * @param {string} [opts.token] - API key
70
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
65
71
  * @param {string} opts.printTemplateId - Print template id (ObjectId)
66
72
  * @param {PrintTemplateGetByIdQuery} [opts.query] - Query params (providerId, superUserId, superUserHash)
67
73
  * @param {Object} [opts.headers] - Optional headers
68
- * @returns {Promise<import("axios").AxiosResponse>}
74
+ * @returns {Promise<import("axios").AxiosResponse<{ printTemplate: object }>>}
75
+ * @throws {import("axios").AxiosError} 400 INVALID_PRINT_TEMPLATE_ID / INVALID_PROVIDER_ID, 401, 404 PRINT_TEMPLATE_NOT_FOUND, 500
69
76
  */
70
- function get({token, query, headers, printTemplateId}) {
77
+ function get({token, jwtToken, printTemplateId, query = {}, headers}) {
71
78
  return client({
72
79
  url: `/print-templates/${printTemplateId}`,
73
80
  params: query,
74
- headers: authorizationHeaders({token, internalAuthTokenProvider, headers})
81
+ headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers})
75
82
  });
76
83
  }
77
84
 
78
85
  /**
79
- * PUT /print-templates/:printTemplateId - update a print template. API getSpec() does not define query params.
86
+ * PUT /print-templates/:printTemplateId - update a print template.
80
87
  * @param {Object} opts
81
88
  * @param {string} [opts.token] - API key
82
89
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
83
90
  * @param {string} opts.printTemplateId - Print template id (ObjectId)
84
- * @param {Object} opts.printTemplate - Print template payload
91
+ * @param {Object} opts.printTemplate - Print template payload (name, type; type-specific fields)
92
+ * @param {Object} [opts.query] - Optional (superUserId, superUserHash)
85
93
  * @param {Object} [opts.headers] - Optional headers
86
- * @returns {Promise<import("axios").AxiosResponse>}
94
+ * @returns {Promise<import("axios").AxiosResponse<{ printTemplate: object }>>}
95
+ * @throws {import("axios").AxiosError} 400 WRONG_DATA, type-specific; 401 NOT_SUPER_USER; 404; 500
87
96
  */
88
97
  function update({jwtToken, token, printTemplateId, printTemplate, headers, query}) {
89
98
  return client({
@@ -100,13 +109,14 @@ function printSettingsFactory({client, internalAuthTokenProvider}) {
100
109
  }
101
110
 
102
111
  /**
103
- * POST /print-templates - create a print template. API does not accept query params.
112
+ * POST /print-templates - create a print template. Body: printTemplate (name, type required; type-specific fields).
104
113
  * @param {Object} opts
105
114
  * @param {string} [opts.token] - API key
106
115
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
107
- * @param {Object} opts.printTemplate - Print template payload
116
+ * @param {Object} opts.printTemplate - Print template payload (see PrintTemplatePostData)
108
117
  * @param {Object} [opts.headers] - Optional headers
109
- * @returns {Promise<import("axios").AxiosResponse>}
118
+ * @returns {Promise<import("axios").AxiosResponse<{ printTemplate: object }>>}
119
+ * @throws {import("axios").AxiosError} 400 WRONG_DATA / PRODUCT_* / INVOICE_* / META_* / TEMPLATE_*, 401 NOT_SUPER_USER, 500
110
120
  */
111
121
  function create({jwtToken, token, printTemplate, headers}) {
112
122
  return client({
@@ -122,13 +132,14 @@ function printSettingsFactory({client, internalAuthTokenProvider}) {
122
132
  }
123
133
 
124
134
  /**
125
- * DELETE /print-templates/:printTemplateId - remove a print template. API does not accept query params.
135
+ * DELETE /print-templates/:printTemplateId - delete a print template.
126
136
  * @param {Object} opts
127
137
  * @param {string} [opts.token] - API key
128
138
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
129
139
  * @param {string} opts.printTemplateId - Print template id (ObjectId)
130
140
  * @param {Object} [opts.headers] - Optional headers
131
- * @returns {Promise<import("axios").AxiosResponse>}
141
+ * @returns {Promise<import("axios").AxiosResponse<{ printTemplateId: string }>>}
142
+ * @throws {import("axios").AxiosError} 400 PRINT_TEMPLATE_ID, 401, 404 PRINT_TEMPLATE_NOT_FOUND, 500
132
143
  */
133
144
  function remove({printTemplateId, token, jwtToken, headers}) {
134
145
  return client({
@@ -142,7 +153,7 @@ function printSettingsFactory({client, internalAuthTokenProvider}) {
142
153
 
143
154
  const versions = {
144
155
  /**
145
- * PUT /print-templates/:printTemplateId/versions/:versionId - roll back print template to a version.
156
+ * PUT /print-templates/:printTemplateId/versions/:versionId - roll back to a saved version (versionId = zero-based index).
146
157
  * @param {Object} opts
147
158
  * @param {string} [opts.token] - API key
148
159
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
@@ -150,7 +161,8 @@ function printSettingsFactory({client, internalAuthTokenProvider}) {
150
161
  * @param {string} opts.versionId - Zero-based version index (e.g. "0", "1")
151
162
  * @param {PrintTemplateVersionUpdateQuery} [opts.query] - Query params (superUserId, superUserHash)
152
163
  * @param {Object} [opts.headers] - Optional headers
153
- * @returns {Promise<import("axios").AxiosResponse>}
164
+ * @returns {Promise<import("axios").AxiosResponse<{ printTemplate: object }>>}
165
+ * @throws {import("axios").AxiosError} 400 WRONG_DATA; 401 NOT_SUPER_USER; 404; 500
154
166
  */
155
167
  update({printTemplateId, token, jwtToken, headers, query, versionId}) {
156
168
  return client({
@@ -1,3 +1,4 @@
1
+ /* eslint-disable max-len */
1
2
  const {
2
3
  authorizationHeaders
3
4
  } = require("./../endpoints_helpers.js");
@@ -11,17 +12,21 @@ const {
11
12
  */
12
13
  function printersFactory({client, internalAuthTokenProvider}) {
13
14
  /**
14
- * GET /printers - list printers. API does not accept query params.
15
+ * GET /printers - list supported printers and their print templates. No query parameters accepted.
15
16
  * @param {Object} opts
16
17
  * @param {string} [opts.token] - API key
18
+ * @param {string} [opts.jwtToken] - JWT or internal auth symbol
19
+ * @param {Object} [opts.query] - Unused; API accepts no query params
17
20
  * @param {Object} [opts.headers] - Optional headers
18
- * @returns {Promise<import("axios").AxiosResponse>}
21
+ * @returns {Promise<import("axios").AxiosResponse<{ printers: Array<object> }>>}
22
+ * Response printers array: each has id, name, itemTypes, templates (see GET /printers).
23
+ * @throws {import("axios").AxiosError} 401 Unauthorized, 500 Internal server error
19
24
  */
20
- function all({token, query, headers}) {
25
+ function all({token, jwtToken, query, headers}) {
21
26
  return client({
22
27
  url: "/printers",
23
- params: query,
24
- headers: authorizationHeaders({token, internalAuthTokenProvider, headers})
28
+ params: query || {},
29
+ headers: authorizationHeaders({token, jwtToken, internalAuthTokenProvider, headers})
25
30
  });
26
31
  }
27
32
 
@@ -1,3 +1,4 @@
1
+ /* eslint-disable max-len */
1
2
  const {
2
3
  authorizationHeaders
3
4
  } = require("./../endpoints_helpers.js");
@@ -11,12 +12,14 @@ const {
11
12
  */
12
13
  function revenueManagementSettingsFactory({client, internalAuthTokenProvider}) {
13
14
  /**
14
- * GET /rms-settings - get revenue management settings. API does not accept query params.
15
+ * GET /rms-settings get revenue management settings for the account. No query parameters.
15
16
  * @param {Object} opts
16
- * @param {string} [opts.token] - API key
17
- * @param {string} [opts.jwtToken] - JWT or internal auth symbol
18
- * @param {Object} [opts.headers] - Optional headers
19
- * @returns {Promise<import("axios").AxiosResponse>}
17
+ * @param {string} [opts.token] - API key (X-API-KEY)
18
+ * @param {string} [opts.jwtToken] - JWT or internal auth token
19
+ * @param {Object} [opts.headers] - Optional request headers
20
+ * @returns {Promise<import("axios").AxiosResponse<{ data: { revenueManagementSettings: { enabled: boolean, applicationId?: string, subscriptionId?: string, ratalityClientId?: string, userId?: string } } }>>}
21
+ * @throws {import("axios").AxiosError} 401 Unauthorized (missing or invalid API key/Authorization)
22
+ * @throws {import("axios").AxiosError} 500 Internal server error
20
23
  */
21
24
  function get({token, jwtToken, headers}) {
22
25
  return client({
@@ -26,13 +29,18 @@ function revenueManagementSettingsFactory({client, internalAuthTokenProvider}) {
26
29
  }
27
30
 
28
31
  /**
29
- * PUT /rms-settings - update revenue management settings. API does not accept query params.
32
+ * PUT /rms-settings update revenue management settings. Body is the settings object (e.g. { enabled: true }).
33
+ * When enabling, Ratality credentials must already exist on the account. Emits rms.enabled / rms.disabled webhooks.
30
34
  * @param {Object} opts
31
- * @param {string} [opts.token] - API key
32
- * @param {string} [opts.jwtToken] - JWT or internal auth symbol
33
- * @param {Object} opts.revenueManagementSettings - Settings payload
34
- * @param {Object} [opts.headers] - Optional headers
35
- * @returns {Promise<import("axios").AxiosResponse>}
35
+ * @param {string} [opts.token] - API key (X-API-KEY)
36
+ * @param {string} [opts.jwtToken] - JWT or internal auth token
37
+ * @param {{ enabled: boolean, ratalityUsername?: string, ratalityPassword?: string }} opts.revenueManagementSettings - Settings payload (at least enabled; credentials required when enabling)
38
+ * @param {Object} [opts.headers] - Optional request headers
39
+ * @returns {Promise<import("axios").AxiosResponse<{ data: { revenueManagementSettings: { enabled: boolean, applicationId?: string, subscriptionId?: string, ratalityClientId?: string, userId?: string } } }>>}
40
+ * @throws {import("axios").AxiosError} 400 ACCOUNT_ALREADY_HAS_RMS_SETTINGS_ENABLED, RATALITY_CREDENTIALS_REQUIRED, CREATE_CLIENT_*
41
+ * @throws {import("axios").AxiosError} 401 Unauthorized
42
+ * @throws {import("axios").AxiosError} 404 ACCOUNT_NOT_FOUND
43
+ * @throws {import("axios").AxiosError} 500 CREATE_USER_ERROR or internal server error
36
44
  */
37
45
  function update({token, jwtToken, revenueManagementSettings, headers}) {
38
46
  return client({
@@ -3,7 +3,7 @@ const {
3
3
  } = require("./../endpoints_helpers.js");
4
4
 
5
5
  /**
6
- * Factory for salesforce-settings API (btrz-api-accounts).
6
+ * Factory for salesforce-settings API (btrz-api-accounts). Requires BETTEREZ_APP audience.
7
7
  * @param {Object} deps
8
8
  * @param {import("axios").AxiosInstance} deps.client
9
9
  * @param {{ getToken: function(): string }} [deps.internalAuthTokenProvider]
@@ -11,12 +11,13 @@ const {
11
11
  */
12
12
  function salesforceSettingsFactory({client, internalAuthTokenProvider}) {
13
13
  /**
14
- * GET /salesforce-settings - get Salesforce settings. API does not accept query params.
14
+ * GET /salesforce-settings get Salesforce settings for the current account. No query params.
15
15
  * @param {Object} opts
16
16
  * @param {string} [opts.token] - API key
17
17
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
18
+ * @param {Object} [opts.query] - Optional query params
18
19
  * @param {Object} [opts.headers] - Optional headers
19
- * @returns {Promise<import("axios").AxiosResponse>}
20
+ * @returns {Promise<import("axios").AxiosResponse<{ salesforceSettings: object }>>}
20
21
  */
21
22
  function get({jwtToken, token, query, headers}) {
22
23
  return client({
@@ -27,13 +28,14 @@ function salesforceSettingsFactory({client, internalAuthTokenProvider}) {
27
28
  }
28
29
 
29
30
  /**
30
- * PUT /salesforce-settings - update Salesforce settings. API does not accept query params.
31
+ * PUT /salesforce-settings update Salesforce settings. When enabled is true, mcInstanceId,
32
+ * messageId, clientId, clientSecret are required. Emits salesforcesettings.updated webhook.
31
33
  * @param {Object} opts
32
34
  * @param {string} [opts.token] - API key
33
35
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
34
- * @param {Object} opts.salesforceSettings - Settings payload
36
+ * @param {Object} opts.salesforceSettings - Settings payload (SalesforceSettingsPayload; enabled required)
35
37
  * @param {Object} [opts.headers] - Optional headers
36
- * @returns {Promise<import("axios").AxiosResponse>}
38
+ * @returns {Promise<import("axios").AxiosResponse<{ salesforceSettings: object }>>}
37
39
  */
38
40
  function update({jwtToken, token, salesforceSettings, headers}) {
39
41
  return client({
@@ -3,7 +3,7 @@ const {
3
3
  } = require("./../endpoints_helpers.js");
4
4
 
5
5
  /**
6
- * Factory for shift-settings API (btrz-api-accounts).
6
+ * Factory for shift-settings API (btrz-api-accounts). Requires BETTEREZ_APP audience.
7
7
  * @param {Object} deps
8
8
  * @param {import("axios").AxiosInstance} deps.client
9
9
  * @param {{ getToken: function(): string }} [deps.internalAuthTokenProvider]
@@ -11,12 +11,13 @@ const {
11
11
  */
12
12
  function shiftSettingsFactory({client, internalAuthTokenProvider}) {
13
13
  /**
14
- * GET /shift-settings - get shift settings. API does not accept query params.
14
+ * GET /shift-settings get shift settings for the current account. No query params.
15
15
  * @param {Object} opts
16
16
  * @param {string} [opts.token] - API key
17
17
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
18
+ * @param {Object} [opts.query] - Optional query params
18
19
  * @param {Object} [opts.headers] - Optional headers
19
- * @returns {Promise<import("axios").AxiosResponse>}
20
+ * @returns {Promise<import("axios").AxiosResponse<{ shiftSettings: object }>>}
20
21
  */
21
22
  function get({token, jwtToken, query, headers}) {
22
23
  return client({
@@ -27,13 +28,13 @@ function shiftSettingsFactory({client, internalAuthTokenProvider}) {
27
28
  }
28
29
 
29
30
  /**
30
- * PUT /shift-settings - update shift settings. API does not accept query params.
31
+ * PUT /shift-settings update shift settings. Emits shiftsettings.updated webhook.
31
32
  * @param {Object} opts
32
33
  * @param {string} [opts.token] - API key
33
34
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
34
- * @param {Object} opts.shiftSettings - Settings payload
35
+ * @param {Object} opts.shiftSettings - Settings payload (ShiftSetting)
35
36
  * @param {Object} [opts.headers] - Optional headers
36
- * @returns {Promise<import("axios").AxiosResponse>}
37
+ * @returns {Promise<import("axios").AxiosResponse<{ shiftSettings: object }>>}
37
38
  */
38
39
  function update({jwtToken, token, shiftSettings, headers}) {
39
40
  return client({
@@ -46,13 +46,14 @@ const {authorizationHeaders} = require("./../endpoints_helpers.js");
46
46
  */
47
47
  function shiftsFactory({client, internalAuthTokenProvider}) {
48
48
  /**
49
- * GET /shifts - list shifts.
49
+ * GET /shifts - list shifts for the account. Returns shifts filtered by query params.
50
+ * See get-shifts handler getSpec() in btrz-api-accounts for full API details.
50
51
  * @param {Object} opts
51
52
  * @param {string} [opts.token] - API key
52
53
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
53
- * @param {ShiftsListQuery} [opts.query] - Query params
54
+ * @param {ShiftsListQuery} [opts.query] - Query params (includeActivity, status, pendingShiftClosure, locationId, providerId, sort, fromDate, toDate)
54
55
  * @param {Object} [opts.headers] - Optional headers
55
- * @returns {Promise<import("axios").AxiosResponse>}
56
+ * @returns {Promise<import("axios").AxiosResponse<{ shifts: Array }>>} Response body: { shifts }. Errors: 400 (validation), 401, 500
56
57
  */
57
58
  function all({jwtToken, token, query, headers}) {
58
59
  return client.get("/shifts", {
@@ -78,13 +79,14 @@ function shiftsFactory({client, internalAuthTokenProvider}) {
78
79
  }
79
80
 
80
81
  /**
81
- * POST /shifts - create a shift.
82
+ * POST /shifts - open a shift for a user. Body: PostShiftRequest (stationId, userId, counterNumber).
83
+ * See post-shift handler getSpec() in btrz-api-accounts for full API details.
82
84
  * @param {Object} opts
83
85
  * @param {string} [opts.token] - API key
84
86
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
85
- * @param {Object} opts.shiftData - Shift payload
87
+ * @param {Object} opts.shiftData - Shift payload (stationId, userId, counterNumber)
86
88
  * @param {Object} [opts.headers] - Optional headers
87
- * @returns {Promise<import("axios").AxiosResponse>}
89
+ * @returns {Promise<import("axios").AxiosResponse<{ shift: Object }>>} Response body: { shift }. Errors: 400, 401, 404 (USER_NOT_FOUND, STATION_NOT_FOUND), 409 (SHIFT_ALREADY_OPEN_FOR_USER, USER_WITHOUT_SHIFT_ENABLED), 500
88
90
  */
89
91
  function create({jwtToken, token, shiftData, headers}) {
90
92
  return client({
@@ -98,14 +100,16 @@ function shiftsFactory({client, internalAuthTokenProvider}) {
98
100
  }
99
101
 
100
102
  /**
101
- * PATCH /shifts/:shiftId - update a shift (operations). API getSpec() does not define query params.
103
+ * PATCH /shifts/:shiftId - close a shift. Body: PatchShiftRequest (operations array with comment).
104
+ * See patch-shift handler getSpec() in btrz-api-accounts for full API details.
102
105
  * @param {Object} opts
103
106
  * @param {string} [opts.token] - API key
104
107
  * @param {string} [opts.jwtToken] - JWT or internal auth symbol
105
108
  * @param {string} opts.shiftId - Shift id (ObjectId)
106
- * @param {Object} opts.operations - Operations payload
109
+ * @param {Object} opts.operations - Operations payload (e.g. [{ comment }] for close)
107
110
  * @param {Object} [opts.headers] - Optional headers
108
- * @returns {Promise<import("axios").AxiosResponse>}
111
+ * @param {Object} [opts.query] - Optional query params
112
+ * @returns {Promise<import("axios").AxiosResponse<{ shift: Object }>>} Response body: { shift }. Errors: 401, 404 (SHIFT_NOT_FOUND, USER_NOT_FOUND), 409 (SHIFT_ALREADY_CLOSED, COMMENT_IS_MANDATORY_WHEN_VARIANCE_EXISTS, TOTAL_CHANGED), 500
109
113
  */
110
114
  function update({jwtToken, token, shiftId, operations, headers, query}) {
111
115
  return client({