rotacloud 1.0.52 → 1.0.55

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 (523) hide show
  1. package/.eslintrc.json +2 -2
  2. package/.github/workflows/check.yml +36 -0
  3. package/.github/workflows/publish.yml +8 -9
  4. package/package.json +14 -15
  5. package/src/services/attendance.service.ts +1 -3
  6. package/src/services/availability.service.ts +2 -4
  7. package/src/services/service.ts +51 -80
  8. package/src/services/shifts.service.ts +45 -14
  9. package/src/version.ts +1 -1
  10. package/dist/cjs/interfaces/account-service.interface.d.ts +0 -6
  11. package/dist/cjs/interfaces/account-service.interface.js +0 -2
  12. package/dist/cjs/interfaces/account-services.interface.d.ts +0 -6
  13. package/dist/cjs/interfaces/account-services.interface.js +0 -2
  14. package/dist/cjs/interfaces/account.interface.d.ts +0 -40
  15. package/dist/cjs/interfaces/account.interface.js +0 -2
  16. package/dist/cjs/interfaces/attendance.interface.d.ts +0 -31
  17. package/dist/cjs/interfaces/attendance.interface.js +0 -2
  18. package/dist/cjs/interfaces/auth.interface.d.ts +0 -8
  19. package/dist/cjs/interfaces/auth.interface.js +0 -2
  20. package/dist/cjs/interfaces/availability-pattern.interface.d.ts +0 -20
  21. package/dist/cjs/interfaces/availability-pattern.interface.js +0 -2
  22. package/dist/cjs/interfaces/availability.interface.d.ts +0 -13
  23. package/dist/cjs/interfaces/availability.interface.js +0 -2
  24. package/dist/cjs/interfaces/daily-budgets.interface.d.ts +0 -6
  25. package/dist/cjs/interfaces/daily-budgets.interface.js +0 -2
  26. package/dist/cjs/interfaces/daily-revenue.interface.d.ts +0 -7
  27. package/dist/cjs/interfaces/daily-revenue.interface.js +0 -2
  28. package/dist/cjs/interfaces/day-note.interface.d.ts +0 -9
  29. package/dist/cjs/interfaces/day-note.interface.js +0 -2
  30. package/dist/cjs/interfaces/days-off-pattern.interface.d.ts +0 -13
  31. package/dist/cjs/interfaces/days-off-pattern.interface.js +0 -2
  32. package/dist/cjs/interfaces/days-off.interface.d.ts +0 -8
  33. package/dist/cjs/interfaces/days-off.interface.js +0 -2
  34. package/dist/cjs/interfaces/group.interface.d.ts +0 -7
  35. package/dist/cjs/interfaces/group.interface.js +0 -2
  36. package/dist/cjs/interfaces/holiday_allowance.interface.d.ts +0 -11
  37. package/dist/cjs/interfaces/holiday_allowance.interface.js +0 -2
  38. package/dist/cjs/interfaces/index.d.ts +0 -37
  39. package/dist/cjs/interfaces/index.js +0 -49
  40. package/dist/cjs/interfaces/leave-date.interface.d.ts +0 -8
  41. package/dist/cjs/interfaces/leave-date.interface.js +0 -2
  42. package/dist/cjs/interfaces/leave-embargo.interface.d.ts +0 -10
  43. package/dist/cjs/interfaces/leave-embargo.interface.js +0 -2
  44. package/dist/cjs/interfaces/leave-rate.interface.d.ts +0 -3
  45. package/dist/cjs/interfaces/leave-rate.interface.js +0 -2
  46. package/dist/cjs/interfaces/leave-request.interface.d.ts +0 -13
  47. package/dist/cjs/interfaces/leave-request.interface.js +0 -2
  48. package/dist/cjs/interfaces/leave-type.interface.d.ts +0 -8
  49. package/dist/cjs/interfaces/leave-type.interface.js +0 -2
  50. package/dist/cjs/interfaces/leave.interface.d.ts +0 -28
  51. package/dist/cjs/interfaces/leave.interface.js +0 -2
  52. package/dist/cjs/interfaces/location-coordinate.interface.d.ts +0 -5
  53. package/dist/cjs/interfaces/location-coordinate.interface.js +0 -2
  54. package/dist/cjs/interfaces/location.interface.d.ts +0 -13
  55. package/dist/cjs/interfaces/location.interface.js +0 -2
  56. package/dist/cjs/interfaces/logbook-category.interface.d.ts +0 -5
  57. package/dist/cjs/interfaces/logbook-category.interface.js +0 -2
  58. package/dist/cjs/interfaces/logbook-event.interface.d.ts +0 -16
  59. package/dist/cjs/interfaces/logbook-event.interface.js +0 -2
  60. package/dist/cjs/interfaces/pay-period.interface.d.ts +0 -16
  61. package/dist/cjs/interfaces/pay-period.interface.js +0 -2
  62. package/dist/cjs/interfaces/pin.interface.d.ts +0 -3
  63. package/dist/cjs/interfaces/pin.interface.js +0 -2
  64. package/dist/cjs/interfaces/query-params/attendance-query-params.interface.d.ts +0 -9
  65. package/dist/cjs/interfaces/query-params/attendance-query-params.interface.js +0 -2
  66. package/dist/cjs/interfaces/query-params/availability-patterns-query-params.interface.d.ts +0 -5
  67. package/dist/cjs/interfaces/query-params/availability-patterns-query-params.interface.js +0 -2
  68. package/dist/cjs/interfaces/query-params/availability-query-params.interface.d.ts +0 -12
  69. package/dist/cjs/interfaces/query-params/availability-query-params.interface.js +0 -2
  70. package/dist/cjs/interfaces/query-params/common-shift-times-query-params.interface.d.ts +0 -3
  71. package/dist/cjs/interfaces/query-params/common-shift-times-query-params.interface.js +0 -2
  72. package/dist/cjs/interfaces/query-params/daily-budgets-query-params.interface.d.ts +0 -5
  73. package/dist/cjs/interfaces/query-params/daily-budgets-query-params.interface.js +0 -2
  74. package/dist/cjs/interfaces/query-params/daily-revenue-query-params.interface.d.ts +0 -5
  75. package/dist/cjs/interfaces/query-params/daily-revenue-query-params.interface.js +0 -2
  76. package/dist/cjs/interfaces/query-params/day-notes-query-params.interface.d.ts +0 -5
  77. package/dist/cjs/interfaces/query-params/day-notes-query-params.interface.js +0 -2
  78. package/dist/cjs/interfaces/query-params/days-off-patterns-query-params.interface.d.ts +0 -5
  79. package/dist/cjs/interfaces/query-params/days-off-patterns-query-params.interface.js +0 -2
  80. package/dist/cjs/interfaces/query-params/days-off-query-params.interface.d.ts +0 -5
  81. package/dist/cjs/interfaces/query-params/days-off-query-params.interface.js +0 -2
  82. package/dist/cjs/interfaces/query-params/documents-query-params.interface.d.ts +0 -4
  83. package/dist/cjs/interfaces/query-params/documents-query-params.interface.js +0 -2
  84. package/dist/cjs/interfaces/query-params/groups-query-params.interface.d.ts +0 -3
  85. package/dist/cjs/interfaces/query-params/groups-query-params.interface.js +0 -2
  86. package/dist/cjs/interfaces/query-params/index.d.ts +0 -27
  87. package/dist/cjs/interfaces/query-params/index.js +0 -39
  88. package/dist/cjs/interfaces/query-params/internal-query-params.interface.d.ts +0 -5
  89. package/dist/cjs/interfaces/query-params/internal-query-params.interface.js +0 -2
  90. package/dist/cjs/interfaces/query-params/leave-embargoes-query-params.interface.d.ts +0 -5
  91. package/dist/cjs/interfaces/query-params/leave-embargoes-query-params.interface.js +0 -2
  92. package/dist/cjs/interfaces/query-params/leave-query-params.interface.d.ts +0 -13
  93. package/dist/cjs/interfaces/query-params/leave-query-params.interface.js +0 -2
  94. package/dist/cjs/interfaces/query-params/leave-requests-query-params.interface.d.ts +0 -4
  95. package/dist/cjs/interfaces/query-params/leave-requests-query-params.interface.js +0 -2
  96. package/dist/cjs/interfaces/query-params/locations-query-params.interface.d.ts +0 -7
  97. package/dist/cjs/interfaces/query-params/locations-query-params.interface.js +0 -2
  98. package/dist/cjs/interfaces/query-params/logbook-events-query-params.interface.d.ts +0 -3
  99. package/dist/cjs/interfaces/query-params/logbook-events-query-params.interface.js +0 -2
  100. package/dist/cjs/interfaces/query-params/pay-periods-query-params.interface.d.ts +0 -4
  101. package/dist/cjs/interfaces/query-params/pay-periods-query-params.interface.js +0 -2
  102. package/dist/cjs/interfaces/query-params/roles-query-params.interface.d.ts +0 -5
  103. package/dist/cjs/interfaces/query-params/roles-query-params.interface.js +0 -2
  104. package/dist/cjs/interfaces/query-params/settings-query-params.interface.d.ts +0 -3
  105. package/dist/cjs/interfaces/query-params/settings-query-params.interface.js +0 -2
  106. package/dist/cjs/interfaces/query-params/shifts-query-params.interface.d.ts +0 -14
  107. package/dist/cjs/interfaces/query-params/shifts-query-params.interface.js +0 -2
  108. package/dist/cjs/interfaces/query-params/swap-requests-query-params.interface.d.ts +0 -8
  109. package/dist/cjs/interfaces/query-params/swap-requests-query-params.interface.js +0 -2
  110. package/dist/cjs/interfaces/query-params/terminals-query-params.interface.d.ts +0 -3
  111. package/dist/cjs/interfaces/query-params/terminals-query-params.interface.js +0 -2
  112. package/dist/cjs/interfaces/query-params/toil-accruals-query-params.interface.d.ts +0 -4
  113. package/dist/cjs/interfaces/query-params/toil-accruals-query-params.interface.js +0 -2
  114. package/dist/cjs/interfaces/query-params/toil-allowance-query-params.interface.d.ts +0 -3
  115. package/dist/cjs/interfaces/query-params/toil-allowance-query-params.interface.js +0 -2
  116. package/dist/cjs/interfaces/query-params/unavailability-requests-query-params.interface.d.ts +0 -8
  117. package/dist/cjs/interfaces/query-params/unavailability-requests-query-params.interface.js +0 -2
  118. package/dist/cjs/interfaces/query-params/users-query-params.interface.d.ts +0 -24
  119. package/dist/cjs/interfaces/query-params/users-query-params.interface.js +0 -2
  120. package/dist/cjs/interfaces/role-rate.interface.d.ts +0 -6
  121. package/dist/cjs/interfaces/role-rate.interface.js +0 -2
  122. package/dist/cjs/interfaces/role.interface.d.ts +0 -9
  123. package/dist/cjs/interfaces/role.interface.js +0 -2
  124. package/dist/cjs/interfaces/sdk-config.interface.d.ts +0 -9
  125. package/dist/cjs/interfaces/sdk-config.interface.js +0 -2
  126. package/dist/cjs/interfaces/settings.interface.d.ts +0 -64
  127. package/dist/cjs/interfaces/settings.interface.js +0 -2
  128. package/dist/cjs/interfaces/shift.interface.d.ts +0 -25
  129. package/dist/cjs/interfaces/shift.interface.js +0 -2
  130. package/dist/cjs/interfaces/terminal.interface.d.ts +0 -20
  131. package/dist/cjs/interfaces/terminal.interface.js +0 -2
  132. package/dist/cjs/interfaces/toil-accrual.interface.d.ts +0 -14
  133. package/dist/cjs/interfaces/toil-accrual.interface.js +0 -2
  134. package/dist/cjs/interfaces/toil-allowance.interface.d.ts +0 -7
  135. package/dist/cjs/interfaces/toil-allowance.interface.js +0 -2
  136. package/dist/cjs/interfaces/user.interface.d.ts +0 -45
  137. package/dist/cjs/interfaces/user.interface.js +0 -2
  138. package/dist/cjs/interfaces/users-clocked-in.interface.d.ts +0 -13
  139. package/dist/cjs/interfaces/users-clocked-in.interface.js +0 -2
  140. package/dist/cjs/interfaces/users-clocked-out.interface.d.ts +0 -26
  141. package/dist/cjs/interfaces/users-clocked-out.interface.js +0 -2
  142. package/dist/cjs/models/SDKError.model.d.ts +0 -11
  143. package/dist/cjs/models/SDKError.model.js +0 -15
  144. package/dist/cjs/models/account.model.d.ts +0 -8
  145. package/dist/cjs/models/account.model.js +0 -12
  146. package/dist/cjs/models/attendance.model.d.ts +0 -27
  147. package/dist/cjs/models/attendance.model.js +0 -31
  148. package/dist/cjs/models/auth.model.d.ts +0 -6
  149. package/dist/cjs/models/auth.model.js +0 -10
  150. package/dist/cjs/models/availability-pattern.model.d.ts +0 -17
  151. package/dist/cjs/models/availability-pattern.model.js +0 -21
  152. package/dist/cjs/models/availability.model.d.ts +0 -6
  153. package/dist/cjs/models/availability.model.js +0 -10
  154. package/dist/cjs/models/daily-budgets.model.d.ts +0 -8
  155. package/dist/cjs/models/daily-budgets.model.js +0 -12
  156. package/dist/cjs/models/daily-revenue.model.d.ts +0 -9
  157. package/dist/cjs/models/daily-revenue.model.js +0 -13
  158. package/dist/cjs/models/day-note.model.d.ts +0 -11
  159. package/dist/cjs/models/day-note.model.js +0 -15
  160. package/dist/cjs/models/days-off-pattern.model.d.ts +0 -15
  161. package/dist/cjs/models/days-off-pattern.model.js +0 -9
  162. package/dist/cjs/models/days-off.model.d.ts +0 -6
  163. package/dist/cjs/models/days-off.model.js +0 -10
  164. package/dist/cjs/models/document.model.d.ts +0 -12
  165. package/dist/cjs/models/document.model.js +0 -6
  166. package/dist/cjs/models/group.model.d.ts +0 -7
  167. package/dist/cjs/models/group.model.js +0 -11
  168. package/dist/cjs/models/holiday-allowance-custom.model.d.ts +0 -5
  169. package/dist/cjs/models/holiday-allowance-custom.model.js +0 -6
  170. package/dist/cjs/models/holiday-allowance.model.d.ts +0 -13
  171. package/dist/cjs/models/holiday-allowance.model.js +0 -9
  172. package/dist/cjs/models/index.d.ts +0 -33
  173. package/dist/cjs/models/index.js +0 -45
  174. package/dist/cjs/models/leave-embargo.model.d.ts +0 -6
  175. package/dist/cjs/models/leave-embargo.model.js +0 -10
  176. package/dist/cjs/models/leave-request.model.d.ts +0 -14
  177. package/dist/cjs/models/leave-request.model.js +0 -18
  178. package/dist/cjs/models/leave-type.model.d.ts +0 -10
  179. package/dist/cjs/models/leave-type.model.js +0 -14
  180. package/dist/cjs/models/leave.model.d.ts +0 -28
  181. package/dist/cjs/models/leave.model.js +0 -30
  182. package/dist/cjs/models/location.model.d.ts +0 -14
  183. package/dist/cjs/models/location.model.js +0 -18
  184. package/dist/cjs/models/logbook-category.model.d.ts +0 -7
  185. package/dist/cjs/models/logbook-category.model.js +0 -12
  186. package/dist/cjs/models/logbook-event.model.d.ts +0 -5
  187. package/dist/cjs/models/logbook-event.model.js +0 -9
  188. package/dist/cjs/models/memo.model.d.ts +0 -8
  189. package/dist/cjs/models/memo.model.js +0 -6
  190. package/dist/cjs/models/pay-period.model.d.ts +0 -6
  191. package/dist/cjs/models/pay-period.model.js +0 -10
  192. package/dist/cjs/models/role.model.d.ts +0 -11
  193. package/dist/cjs/models/role.model.js +0 -15
  194. package/dist/cjs/models/settings.model.d.ts +0 -61
  195. package/dist/cjs/models/settings.model.js +0 -9
  196. package/dist/cjs/models/shift.model.d.ts +0 -27
  197. package/dist/cjs/models/shift.model.js +0 -31
  198. package/dist/cjs/models/terminal.model.d.ts +0 -16
  199. package/dist/cjs/models/terminal.model.js +0 -20
  200. package/dist/cjs/models/toil-accrual.model.d.ts +0 -16
  201. package/dist/cjs/models/toil-accrual.model.js +0 -20
  202. package/dist/cjs/models/toil-allowance.model.d.ts +0 -9
  203. package/dist/cjs/models/toil-allowance.model.js +0 -13
  204. package/dist/cjs/models/user.model.d.ts +0 -63
  205. package/dist/cjs/models/user.model.js +0 -44
  206. package/dist/cjs/models/users-clocked-in.model.d.ts +0 -14
  207. package/dist/cjs/models/users-clocked-in.model.js +0 -19
  208. package/dist/cjs/models/users-clocked-out.model.d.ts +0 -27
  209. package/dist/cjs/models/users-clocked-out.model.js +0 -31
  210. package/dist/cjs/package.json +0 -3
  211. package/dist/cjs/rotacloud.d.ts +0 -38
  212. package/dist/cjs/rotacloud.js +0 -61
  213. package/dist/cjs/services/accounts.service.d.ts +0 -16
  214. package/dist/cjs/services/accounts.service.js +0 -89
  215. package/dist/cjs/services/attendance.service.d.ts +0 -33
  216. package/dist/cjs/services/attendance.service.js +0 -108
  217. package/dist/cjs/services/auth.service.d.ts +0 -11
  218. package/dist/cjs/services/auth.service.js +0 -17
  219. package/dist/cjs/services/availability.service.d.ts +0 -26
  220. package/dist/cjs/services/availability.service.js +0 -79
  221. package/dist/cjs/services/daily-budgets.service.d.ts +0 -16
  222. package/dist/cjs/services/daily-budgets.service.js +0 -93
  223. package/dist/cjs/services/daily-revenue.service.d.ts +0 -16
  224. package/dist/cjs/services/daily-revenue.service.js +0 -93
  225. package/dist/cjs/services/day-notes.service.d.ts +0 -31
  226. package/dist/cjs/services/day-notes.service.js +0 -108
  227. package/dist/cjs/services/days-off.service.d.ts +0 -21
  228. package/dist/cjs/services/days-off.service.js +0 -108
  229. package/dist/cjs/services/groups.service.d.ts +0 -33
  230. package/dist/cjs/services/groups.service.js +0 -108
  231. package/dist/cjs/services/index.d.ts +0 -24
  232. package/dist/cjs/services/index.js +0 -36
  233. package/dist/cjs/services/leave-embargoes.service.d.ts +0 -33
  234. package/dist/cjs/services/leave-embargoes.service.js +0 -108
  235. package/dist/cjs/services/leave-request.service.d.ts +0 -33
  236. package/dist/cjs/services/leave-request.service.js +0 -112
  237. package/dist/cjs/services/leave-types.service.d.ts +0 -12
  238. package/dist/cjs/services/leave-types.service.js +0 -17
  239. package/dist/cjs/services/leave.service.d.ts +0 -35
  240. package/dist/cjs/services/leave.service.js +0 -130
  241. package/dist/cjs/services/locations.service.d.ts +0 -33
  242. package/dist/cjs/services/locations.service.js +0 -108
  243. package/dist/cjs/services/pins.service.d.ts +0 -11
  244. package/dist/cjs/services/pins.service.js +0 -16
  245. package/dist/cjs/services/roles.service.d.ts +0 -33
  246. package/dist/cjs/services/roles.service.js +0 -108
  247. package/dist/cjs/services/service.d.ts +0 -43
  248. package/dist/cjs/services/service.js +0 -197
  249. package/dist/cjs/services/settings.service.d.ts +0 -14
  250. package/dist/cjs/services/settings.service.js +0 -17
  251. package/dist/cjs/services/shifts.service.d.ts +0 -60
  252. package/dist/cjs/services/shifts.service.js +0 -124
  253. package/dist/cjs/services/terminals-active.service.d.ts +0 -35
  254. package/dist/cjs/services/terminals-active.service.js +0 -103
  255. package/dist/cjs/services/terminals.service.d.ts +0 -32
  256. package/dist/cjs/services/terminals.service.js +0 -108
  257. package/dist/cjs/services/toil-accruals.service.d.ts +0 -28
  258. package/dist/cjs/services/toil-accruals.service.js +0 -99
  259. package/dist/cjs/services/toil-allowance.service.d.ts +0 -10
  260. package/dist/cjs/services/toil-allowance.service.js +0 -84
  261. package/dist/cjs/services/users-clock-in.service.d.ts +0 -62
  262. package/dist/cjs/services/users-clock-in.service.js +0 -118
  263. package/dist/cjs/services/users.service.d.ts +0 -33
  264. package/dist/cjs/services/users.service.js +0 -108
  265. package/dist/cjs/version.d.ts +0 -3
  266. package/dist/cjs/version.js +0 -4
  267. package/dist/mjs/interfaces/account-service.interface.d.ts +0 -6
  268. package/dist/mjs/interfaces/account-service.interface.js +0 -1
  269. package/dist/mjs/interfaces/account-services.interface.d.ts +0 -6
  270. package/dist/mjs/interfaces/account-services.interface.js +0 -1
  271. package/dist/mjs/interfaces/account.interface.d.ts +0 -40
  272. package/dist/mjs/interfaces/account.interface.js +0 -1
  273. package/dist/mjs/interfaces/attendance.interface.d.ts +0 -31
  274. package/dist/mjs/interfaces/attendance.interface.js +0 -1
  275. package/dist/mjs/interfaces/auth.interface.d.ts +0 -8
  276. package/dist/mjs/interfaces/auth.interface.js +0 -1
  277. package/dist/mjs/interfaces/availability-pattern.interface.d.ts +0 -20
  278. package/dist/mjs/interfaces/availability-pattern.interface.js +0 -1
  279. package/dist/mjs/interfaces/availability.interface.d.ts +0 -13
  280. package/dist/mjs/interfaces/availability.interface.js +0 -1
  281. package/dist/mjs/interfaces/daily-budgets.interface.d.ts +0 -6
  282. package/dist/mjs/interfaces/daily-budgets.interface.js +0 -1
  283. package/dist/mjs/interfaces/daily-revenue.interface.d.ts +0 -7
  284. package/dist/mjs/interfaces/daily-revenue.interface.js +0 -1
  285. package/dist/mjs/interfaces/day-note.interface.d.ts +0 -9
  286. package/dist/mjs/interfaces/day-note.interface.js +0 -1
  287. package/dist/mjs/interfaces/days-off-pattern.interface.d.ts +0 -13
  288. package/dist/mjs/interfaces/days-off-pattern.interface.js +0 -1
  289. package/dist/mjs/interfaces/days-off.interface.d.ts +0 -8
  290. package/dist/mjs/interfaces/days-off.interface.js +0 -1
  291. package/dist/mjs/interfaces/group.interface.d.ts +0 -7
  292. package/dist/mjs/interfaces/group.interface.js +0 -1
  293. package/dist/mjs/interfaces/holiday_allowance.interface.d.ts +0 -11
  294. package/dist/mjs/interfaces/holiday_allowance.interface.js +0 -1
  295. package/dist/mjs/interfaces/index.d.ts +0 -37
  296. package/dist/mjs/interfaces/index.js +0 -37
  297. package/dist/mjs/interfaces/leave-date.interface.d.ts +0 -8
  298. package/dist/mjs/interfaces/leave-date.interface.js +0 -1
  299. package/dist/mjs/interfaces/leave-embargo.interface.d.ts +0 -10
  300. package/dist/mjs/interfaces/leave-embargo.interface.js +0 -1
  301. package/dist/mjs/interfaces/leave-rate.interface.d.ts +0 -3
  302. package/dist/mjs/interfaces/leave-rate.interface.js +0 -1
  303. package/dist/mjs/interfaces/leave-request.interface.d.ts +0 -13
  304. package/dist/mjs/interfaces/leave-request.interface.js +0 -1
  305. package/dist/mjs/interfaces/leave-type.interface.d.ts +0 -8
  306. package/dist/mjs/interfaces/leave-type.interface.js +0 -1
  307. package/dist/mjs/interfaces/leave.interface.d.ts +0 -28
  308. package/dist/mjs/interfaces/leave.interface.js +0 -1
  309. package/dist/mjs/interfaces/location-coordinate.interface.d.ts +0 -5
  310. package/dist/mjs/interfaces/location-coordinate.interface.js +0 -1
  311. package/dist/mjs/interfaces/location.interface.d.ts +0 -13
  312. package/dist/mjs/interfaces/location.interface.js +0 -1
  313. package/dist/mjs/interfaces/logbook-category.interface.d.ts +0 -5
  314. package/dist/mjs/interfaces/logbook-category.interface.js +0 -1
  315. package/dist/mjs/interfaces/logbook-event.interface.d.ts +0 -16
  316. package/dist/mjs/interfaces/logbook-event.interface.js +0 -1
  317. package/dist/mjs/interfaces/pay-period.interface.d.ts +0 -16
  318. package/dist/mjs/interfaces/pay-period.interface.js +0 -1
  319. package/dist/mjs/interfaces/pin.interface.d.ts +0 -3
  320. package/dist/mjs/interfaces/pin.interface.js +0 -1
  321. package/dist/mjs/interfaces/query-params/attendance-query-params.interface.d.ts +0 -9
  322. package/dist/mjs/interfaces/query-params/attendance-query-params.interface.js +0 -1
  323. package/dist/mjs/interfaces/query-params/availability-patterns-query-params.interface.d.ts +0 -5
  324. package/dist/mjs/interfaces/query-params/availability-patterns-query-params.interface.js +0 -1
  325. package/dist/mjs/interfaces/query-params/availability-query-params.interface.d.ts +0 -12
  326. package/dist/mjs/interfaces/query-params/availability-query-params.interface.js +0 -1
  327. package/dist/mjs/interfaces/query-params/common-shift-times-query-params.interface.d.ts +0 -3
  328. package/dist/mjs/interfaces/query-params/common-shift-times-query-params.interface.js +0 -1
  329. package/dist/mjs/interfaces/query-params/daily-budgets-query-params.interface.d.ts +0 -5
  330. package/dist/mjs/interfaces/query-params/daily-budgets-query-params.interface.js +0 -1
  331. package/dist/mjs/interfaces/query-params/daily-revenue-query-params.interface.d.ts +0 -5
  332. package/dist/mjs/interfaces/query-params/daily-revenue-query-params.interface.js +0 -1
  333. package/dist/mjs/interfaces/query-params/day-notes-query-params.interface.d.ts +0 -5
  334. package/dist/mjs/interfaces/query-params/day-notes-query-params.interface.js +0 -1
  335. package/dist/mjs/interfaces/query-params/days-off-patterns-query-params.interface.d.ts +0 -5
  336. package/dist/mjs/interfaces/query-params/days-off-patterns-query-params.interface.js +0 -1
  337. package/dist/mjs/interfaces/query-params/days-off-query-params.interface.d.ts +0 -5
  338. package/dist/mjs/interfaces/query-params/days-off-query-params.interface.js +0 -1
  339. package/dist/mjs/interfaces/query-params/documents-query-params.interface.d.ts +0 -4
  340. package/dist/mjs/interfaces/query-params/documents-query-params.interface.js +0 -1
  341. package/dist/mjs/interfaces/query-params/groups-query-params.interface.d.ts +0 -3
  342. package/dist/mjs/interfaces/query-params/groups-query-params.interface.js +0 -1
  343. package/dist/mjs/interfaces/query-params/index.d.ts +0 -27
  344. package/dist/mjs/interfaces/query-params/index.js +0 -27
  345. package/dist/mjs/interfaces/query-params/internal-query-params.interface.d.ts +0 -5
  346. package/dist/mjs/interfaces/query-params/internal-query-params.interface.js +0 -1
  347. package/dist/mjs/interfaces/query-params/leave-embargoes-query-params.interface.d.ts +0 -5
  348. package/dist/mjs/interfaces/query-params/leave-embargoes-query-params.interface.js +0 -1
  349. package/dist/mjs/interfaces/query-params/leave-query-params.interface.d.ts +0 -13
  350. package/dist/mjs/interfaces/query-params/leave-query-params.interface.js +0 -1
  351. package/dist/mjs/interfaces/query-params/leave-requests-query-params.interface.d.ts +0 -4
  352. package/dist/mjs/interfaces/query-params/leave-requests-query-params.interface.js +0 -1
  353. package/dist/mjs/interfaces/query-params/locations-query-params.interface.d.ts +0 -7
  354. package/dist/mjs/interfaces/query-params/locations-query-params.interface.js +0 -1
  355. package/dist/mjs/interfaces/query-params/logbook-events-query-params.interface.d.ts +0 -3
  356. package/dist/mjs/interfaces/query-params/logbook-events-query-params.interface.js +0 -1
  357. package/dist/mjs/interfaces/query-params/pay-periods-query-params.interface.d.ts +0 -4
  358. package/dist/mjs/interfaces/query-params/pay-periods-query-params.interface.js +0 -1
  359. package/dist/mjs/interfaces/query-params/roles-query-params.interface.d.ts +0 -5
  360. package/dist/mjs/interfaces/query-params/roles-query-params.interface.js +0 -1
  361. package/dist/mjs/interfaces/query-params/settings-query-params.interface.d.ts +0 -3
  362. package/dist/mjs/interfaces/query-params/settings-query-params.interface.js +0 -1
  363. package/dist/mjs/interfaces/query-params/shifts-query-params.interface.d.ts +0 -14
  364. package/dist/mjs/interfaces/query-params/shifts-query-params.interface.js +0 -1
  365. package/dist/mjs/interfaces/query-params/swap-requests-query-params.interface.d.ts +0 -8
  366. package/dist/mjs/interfaces/query-params/swap-requests-query-params.interface.js +0 -1
  367. package/dist/mjs/interfaces/query-params/terminals-query-params.interface.d.ts +0 -3
  368. package/dist/mjs/interfaces/query-params/terminals-query-params.interface.js +0 -1
  369. package/dist/mjs/interfaces/query-params/toil-accruals-query-params.interface.d.ts +0 -4
  370. package/dist/mjs/interfaces/query-params/toil-accruals-query-params.interface.js +0 -1
  371. package/dist/mjs/interfaces/query-params/toil-allowance-query-params.interface.d.ts +0 -3
  372. package/dist/mjs/interfaces/query-params/toil-allowance-query-params.interface.js +0 -1
  373. package/dist/mjs/interfaces/query-params/unavailability-requests-query-params.interface.d.ts +0 -8
  374. package/dist/mjs/interfaces/query-params/unavailability-requests-query-params.interface.js +0 -1
  375. package/dist/mjs/interfaces/query-params/users-query-params.interface.d.ts +0 -24
  376. package/dist/mjs/interfaces/query-params/users-query-params.interface.js +0 -1
  377. package/dist/mjs/interfaces/role-rate.interface.d.ts +0 -6
  378. package/dist/mjs/interfaces/role-rate.interface.js +0 -1
  379. package/dist/mjs/interfaces/role.interface.d.ts +0 -9
  380. package/dist/mjs/interfaces/role.interface.js +0 -1
  381. package/dist/mjs/interfaces/sdk-config.interface.d.ts +0 -9
  382. package/dist/mjs/interfaces/sdk-config.interface.js +0 -1
  383. package/dist/mjs/interfaces/settings.interface.d.ts +0 -64
  384. package/dist/mjs/interfaces/settings.interface.js +0 -1
  385. package/dist/mjs/interfaces/shift.interface.d.ts +0 -25
  386. package/dist/mjs/interfaces/shift.interface.js +0 -1
  387. package/dist/mjs/interfaces/terminal.interface.d.ts +0 -20
  388. package/dist/mjs/interfaces/terminal.interface.js +0 -1
  389. package/dist/mjs/interfaces/toil-accrual.interface.d.ts +0 -14
  390. package/dist/mjs/interfaces/toil-accrual.interface.js +0 -1
  391. package/dist/mjs/interfaces/toil-allowance.interface.d.ts +0 -7
  392. package/dist/mjs/interfaces/toil-allowance.interface.js +0 -1
  393. package/dist/mjs/interfaces/user.interface.d.ts +0 -45
  394. package/dist/mjs/interfaces/user.interface.js +0 -1
  395. package/dist/mjs/interfaces/users-clocked-in.interface.d.ts +0 -13
  396. package/dist/mjs/interfaces/users-clocked-in.interface.js +0 -1
  397. package/dist/mjs/interfaces/users-clocked-out.interface.d.ts +0 -26
  398. package/dist/mjs/interfaces/users-clocked-out.interface.js +0 -1
  399. package/dist/mjs/models/SDKError.model.d.ts +0 -11
  400. package/dist/mjs/models/SDKError.model.js +0 -10
  401. package/dist/mjs/models/account.model.d.ts +0 -8
  402. package/dist/mjs/models/account.model.js +0 -8
  403. package/dist/mjs/models/attendance.model.d.ts +0 -27
  404. package/dist/mjs/models/attendance.model.js +0 -27
  405. package/dist/mjs/models/auth.model.d.ts +0 -6
  406. package/dist/mjs/models/auth.model.js +0 -6
  407. package/dist/mjs/models/availability-pattern.model.d.ts +0 -17
  408. package/dist/mjs/models/availability-pattern.model.js +0 -17
  409. package/dist/mjs/models/availability.model.d.ts +0 -6
  410. package/dist/mjs/models/availability.model.js +0 -6
  411. package/dist/mjs/models/daily-budgets.model.d.ts +0 -8
  412. package/dist/mjs/models/daily-budgets.model.js +0 -8
  413. package/dist/mjs/models/daily-revenue.model.d.ts +0 -9
  414. package/dist/mjs/models/daily-revenue.model.js +0 -9
  415. package/dist/mjs/models/day-note.model.d.ts +0 -11
  416. package/dist/mjs/models/day-note.model.js +0 -11
  417. package/dist/mjs/models/days-off-pattern.model.d.ts +0 -15
  418. package/dist/mjs/models/days-off-pattern.model.js +0 -5
  419. package/dist/mjs/models/days-off.model.d.ts +0 -6
  420. package/dist/mjs/models/days-off.model.js +0 -6
  421. package/dist/mjs/models/document.model.d.ts +0 -12
  422. package/dist/mjs/models/document.model.js +0 -2
  423. package/dist/mjs/models/group.model.d.ts +0 -7
  424. package/dist/mjs/models/group.model.js +0 -7
  425. package/dist/mjs/models/holiday-allowance-custom.model.d.ts +0 -5
  426. package/dist/mjs/models/holiday-allowance-custom.model.js +0 -2
  427. package/dist/mjs/models/holiday-allowance.model.d.ts +0 -13
  428. package/dist/mjs/models/holiday-allowance.model.js +0 -5
  429. package/dist/mjs/models/index.d.ts +0 -33
  430. package/dist/mjs/models/index.js +0 -33
  431. package/dist/mjs/models/leave-embargo.model.d.ts +0 -6
  432. package/dist/mjs/models/leave-embargo.model.js +0 -6
  433. package/dist/mjs/models/leave-request.model.d.ts +0 -14
  434. package/dist/mjs/models/leave-request.model.js +0 -14
  435. package/dist/mjs/models/leave-type.model.d.ts +0 -10
  436. package/dist/mjs/models/leave-type.model.js +0 -10
  437. package/dist/mjs/models/leave.model.d.ts +0 -28
  438. package/dist/mjs/models/leave.model.js +0 -26
  439. package/dist/mjs/models/location.model.d.ts +0 -14
  440. package/dist/mjs/models/location.model.js +0 -14
  441. package/dist/mjs/models/logbook-category.model.d.ts +0 -7
  442. package/dist/mjs/models/logbook-category.model.js +0 -7
  443. package/dist/mjs/models/logbook-event.model.d.ts +0 -5
  444. package/dist/mjs/models/logbook-event.model.js +0 -5
  445. package/dist/mjs/models/memo.model.d.ts +0 -8
  446. package/dist/mjs/models/memo.model.js +0 -2
  447. package/dist/mjs/models/pay-period.model.d.ts +0 -6
  448. package/dist/mjs/models/pay-period.model.js +0 -6
  449. package/dist/mjs/models/role.model.d.ts +0 -11
  450. package/dist/mjs/models/role.model.js +0 -11
  451. package/dist/mjs/models/settings.model.d.ts +0 -61
  452. package/dist/mjs/models/settings.model.js +0 -5
  453. package/dist/mjs/models/shift.model.d.ts +0 -27
  454. package/dist/mjs/models/shift.model.js +0 -27
  455. package/dist/mjs/models/terminal.model.d.ts +0 -16
  456. package/dist/mjs/models/terminal.model.js +0 -16
  457. package/dist/mjs/models/toil-accrual.model.d.ts +0 -16
  458. package/dist/mjs/models/toil-accrual.model.js +0 -16
  459. package/dist/mjs/models/toil-allowance.model.d.ts +0 -9
  460. package/dist/mjs/models/toil-allowance.model.js +0 -9
  461. package/dist/mjs/models/user.model.d.ts +0 -63
  462. package/dist/mjs/models/user.model.js +0 -40
  463. package/dist/mjs/models/users-clocked-in.model.d.ts +0 -14
  464. package/dist/mjs/models/users-clocked-in.model.js +0 -14
  465. package/dist/mjs/models/users-clocked-out.model.d.ts +0 -27
  466. package/dist/mjs/models/users-clocked-out.model.js +0 -26
  467. package/dist/mjs/package.json +0 -3
  468. package/dist/mjs/rotacloud.d.ts +0 -38
  469. package/dist/mjs/rotacloud.js +0 -49
  470. package/dist/mjs/services/accounts.service.d.ts +0 -16
  471. package/dist/mjs/services/accounts.service.js +0 -29
  472. package/dist/mjs/services/attendance.service.d.ts +0 -33
  473. package/dist/mjs/services/attendance.service.js +0 -47
  474. package/dist/mjs/services/auth.service.d.ts +0 -11
  475. package/dist/mjs/services/auth.service.js +0 -13
  476. package/dist/mjs/services/availability.service.d.ts +0 -26
  477. package/dist/mjs/services/availability.service.js +0 -40
  478. package/dist/mjs/services/daily-budgets.service.d.ts +0 -16
  479. package/dist/mjs/services/daily-budgets.service.js +0 -32
  480. package/dist/mjs/services/daily-revenue.service.d.ts +0 -16
  481. package/dist/mjs/services/daily-revenue.service.js +0 -32
  482. package/dist/mjs/services/day-notes.service.d.ts +0 -31
  483. package/dist/mjs/services/day-notes.service.js +0 -47
  484. package/dist/mjs/services/days-off.service.d.ts +0 -21
  485. package/dist/mjs/services/days-off.service.js +0 -47
  486. package/dist/mjs/services/groups.service.d.ts +0 -33
  487. package/dist/mjs/services/groups.service.js +0 -47
  488. package/dist/mjs/services/index.d.ts +0 -24
  489. package/dist/mjs/services/index.js +0 -24
  490. package/dist/mjs/services/leave-embargoes.service.d.ts +0 -33
  491. package/dist/mjs/services/leave-embargoes.service.js +0 -47
  492. package/dist/mjs/services/leave-request.service.d.ts +0 -33
  493. package/dist/mjs/services/leave-request.service.js +0 -51
  494. package/dist/mjs/services/leave-types.service.d.ts +0 -12
  495. package/dist/mjs/services/leave-types.service.js +0 -13
  496. package/dist/mjs/services/leave.service.d.ts +0 -35
  497. package/dist/mjs/services/leave.service.js +0 -53
  498. package/dist/mjs/services/locations.service.d.ts +0 -33
  499. package/dist/mjs/services/locations.service.js +0 -47
  500. package/dist/mjs/services/pins.service.d.ts +0 -11
  501. package/dist/mjs/services/pins.service.js +0 -12
  502. package/dist/mjs/services/roles.service.d.ts +0 -33
  503. package/dist/mjs/services/roles.service.js +0 -47
  504. package/dist/mjs/services/service.d.ts +0 -43
  505. package/dist/mjs/services/service.js +0 -160
  506. package/dist/mjs/services/settings.service.d.ts +0 -14
  507. package/dist/mjs/services/settings.service.js +0 -14
  508. package/dist/mjs/services/shifts.service.d.ts +0 -60
  509. package/dist/mjs/services/shifts.service.js +0 -63
  510. package/dist/mjs/services/terminals-active.service.d.ts +0 -35
  511. package/dist/mjs/services/terminals-active.service.js +0 -43
  512. package/dist/mjs/services/terminals.service.d.ts +0 -32
  513. package/dist/mjs/services/terminals.service.js +0 -48
  514. package/dist/mjs/services/toil-accruals.service.d.ts +0 -28
  515. package/dist/mjs/services/toil-accruals.service.js +0 -38
  516. package/dist/mjs/services/toil-allowance.service.d.ts +0 -10
  517. package/dist/mjs/services/toil-allowance.service.js +0 -23
  518. package/dist/mjs/services/users-clock-in.service.d.ts +0 -62
  519. package/dist/mjs/services/users-clock-in.service.js +0 -57
  520. package/dist/mjs/services/users.service.d.ts +0 -33
  521. package/dist/mjs/services/users.service.js +0 -48
  522. package/dist/mjs/version.d.ts +0 -3
  523. package/dist/mjs/version.js +0 -1
package/.eslintrc.json CHANGED
@@ -3,14 +3,14 @@
3
3
  "es2021": true,
4
4
  "node": true
5
5
  },
6
- "extends": ["airbnb-base", "airbnb-typescript/base", "plugin:prettier/recommended"],
6
+ "extends": ["airbnb-base", "airbnb-typescript/base", "prettier"],
7
7
  "parser": "@typescript-eslint/parser",
8
8
  "parserOptions": {
9
9
  "ecmaVersion": 13,
10
10
  "sourceType": "module",
11
11
  "project": "./tsconfig.json"
12
12
  },
13
- "plugins": ["@typescript-eslint", "prettier"],
13
+ "plugins": ["@typescript-eslint"],
14
14
  "rules": {
15
15
  "@typescript-eslint/no-useless-constructor": ["off"],
16
16
  "@typescript-eslint/no-unused-vars": ["warn"],
@@ -0,0 +1,36 @@
1
+ name: Check
2
+ on:
3
+ workflow_call:
4
+ inputs:
5
+ NODE_VERSION:
6
+ type: string
7
+ description: 'The version of Node to run the checks with'
8
+ default: 16.10
9
+ pull_request:
10
+ branches: [develop]
11
+
12
+ jobs:
13
+ checks:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - name: Checkout
17
+ uses: actions/checkout@v3
18
+
19
+ - name: Use Node.js ${{ inputs.NODE_VERSION }}
20
+ uses: actions/setup-node@v3
21
+ with:
22
+ node-version: ${{ inputs.NODE_VERSION }}
23
+ cache: 'npm'
24
+ registry-url: https://registry.npmjs.org/
25
+
26
+ - name: npm install
27
+ run: npm ci
28
+
29
+ - name: Lint
30
+ run: npm run lint
31
+
32
+ - name: Build
33
+ run: npm run build --if-present
34
+
35
+ - name: Publishable
36
+ run: npm publish --dry-run
@@ -2,40 +2,39 @@
2
2
  # For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
3
3
 
4
4
  name: Publish
5
-
6
5
  on:
7
6
  push:
8
7
  branches: [main]
9
8
 
10
9
  jobs:
10
+ check:
11
+ uses: ./.github/workflows/check.yml
12
+
11
13
  publish:
12
14
  runs-on: ubuntu-latest
13
-
15
+ needs: [check]
14
16
  strategy:
15
17
  matrix:
16
- node-version: [14.17]
18
+ node-version: [16.10]
17
19
  # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
18
20
 
19
21
  steps:
20
22
  - name: Checkout
21
23
  uses: actions/checkout@v3
24
+
22
25
  - name: Use Node.js ${{ matrix.node-version }}
23
26
  uses: actions/setup-node@v3
24
27
  with:
25
28
  node-version: ${{ matrix.node-version }}
26
29
  cache: 'npm'
27
30
  registry-url: https://registry.npmjs.org/
31
+
28
32
  - name: Add version number to package
29
33
  run: |
30
34
  version=$(node -pe "require('./package.json').version")
31
35
  echo "Version is $version"
32
36
  echo "export const Version = { version: '$version' };" > ./src/version.ts
33
- - name: Run CI
34
- run: npm ci
35
- - name: Lint
36
- run: npm run lint
37
- - name: Build
38
- run: npm run build --if-present
37
+
39
38
  - name: Publish
40
39
  run: npm publish
41
40
  env:
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "rotacloud",
3
- "version": "1.0.52",
3
+ "version": "1.0.55",
4
4
  "description": "The RotaCloud SDK for the RotaCloud API",
5
5
  "engines": {
6
- "node": ">=14.17.0"
6
+ "node": ">=16.10.0"
7
7
  },
8
8
  "main": "./dist/cjs/rotacloud.js",
9
9
  "module": "./dist/mjs/rotacloud.js",
@@ -31,22 +31,21 @@
31
31
  },
32
32
  "homepage": "https://github.com/rotacloud/rotacloud-node#readme",
33
33
  "devDependencies": {
34
- "@typescript-eslint/eslint-plugin": "^5.4.0",
35
- "@typescript-eslint/parser": "^5.4.0",
36
- "concurrently": "^7.2.2",
37
- "eslint": "^8.2.0",
34
+ "@typescript-eslint/eslint-plugin": "^6.2.1",
35
+ "@typescript-eslint/parser": "^6.3.0",
36
+ "concurrently": "^8.2.0",
37
+ "eslint": "^8.46.0",
38
38
  "eslint-config-airbnb": "^19.0.0",
39
39
  "eslint-config-airbnb-base": "^15.0.0",
40
- "eslint-config-airbnb-typescript": "^16.0.0",
41
- "eslint-config-prettier": "^8.3.0",
42
- "eslint-plugin-import": "^2.25.3",
43
- "eslint-plugin-prettier": "^4.0.0",
44
- "prettier": "2.4.1",
45
- "typescript": "^4.4.4"
40
+ "eslint-config-airbnb-typescript": "^17.1.0",
41
+ "eslint-config-prettier": "^9.0.0",
42
+ "eslint-plugin-import": "^2.28.0",
43
+ "prettier": "~3.0.1",
44
+ "typescript": "^5.1.6"
46
45
  },
47
46
  "dependencies": {
48
- "@types/node": "^16.11.6",
49
- "axios": "^0.23.0",
50
- "axios-retry": "^3.3.1"
47
+ "@types/node": "^16.11.7",
48
+ "axios": "^1.4.0",
49
+ "axios-retry": "^3.6.0"
51
50
  }
52
51
  }
@@ -26,9 +26,7 @@ export class AttendanceService extends Service {
26
26
  get(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<ApiAttendance, any>>;
27
27
  get(id: number, options: Options): Promise<Attendance>;
28
28
  get(id: number, options?: Options) {
29
- return super.fetch<ApiAttendance>({ url: `${this.apiPath}/${id}` }, options).then((res) => {
30
- return Promise.resolve(options?.rawResponse ? res : new Attendance(res.data));
31
- });
29
+ return super.fetch<ApiAttendance>({ url: `${this.apiPath}/${id}` }, options).then((res) => Promise.resolve(options?.rawResponse ? res : new Attendance(res.data)));
32
30
  }
33
31
 
34
32
  async *list(query: AttendanceQueryParams, options?: Options) {
@@ -40,13 +40,11 @@ export class AvailabilityService extends Service {
40
40
  return this.update(
41
41
  {
42
42
  user,
43
- dates: dates.map((date) => {
44
- return {
43
+ dates: dates.map((date) => ({
45
44
  date,
46
45
  available: [],
47
46
  unavailable: [],
48
- };
49
- }),
47
+ })),
50
48
  },
51
49
  options
52
50
  );
@@ -1,4 +1,4 @@
1
- import axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosRequestHeaders, AxiosResponse } from 'axios';
1
+ import axios, { AxiosError, AxiosInstance, AxiosRequestConfig, AxiosResponse } from 'axios';
2
2
  import axiosRetry from 'axios-retry';
3
3
  import { RotaCloud } from '../rotacloud.js';
4
4
  import { Version } from '../version.js';
@@ -27,6 +27,15 @@ export type RetryOptions =
27
27
  maxRetries: number;
28
28
  };
29
29
 
30
+ export interface Options {
31
+ rawResponse?: boolean;
32
+ expand?: string[];
33
+ fields?: string[];
34
+ limit?: number;
35
+ offset?: number;
36
+ dryRun?: boolean;
37
+ }
38
+
30
39
  const DEFAULT_RETRIES = 3;
31
40
  const DEFAULT_RETRY_DELAY = 2000;
32
41
 
@@ -42,21 +51,6 @@ const DEFAULT_RETRY_STRATEGY_OPTIONS: Record<RetryStrategy, RetryOptions> = {
42
51
  },
43
52
  };
44
53
 
45
- export interface Options {
46
- rawResponse?: boolean;
47
- expand?: string[];
48
- fields?: string[];
49
- limit?: number;
50
- dryRun?: boolean;
51
- }
52
-
53
- interface PagingObject {
54
- first: string;
55
- prev: string;
56
- next: string;
57
- last: string;
58
- }
59
-
60
54
  type ParameterPrimitive = string | boolean | number | null;
61
55
  type ParameterValue = ParameterPrimitive | ParameterPrimitive[] | undefined;
62
56
 
@@ -89,13 +83,22 @@ export abstract class Service<ApiResponse = any> {
89
83
  return new SDKError(sdkErrorParams);
90
84
  }
91
85
 
92
- public isLeaveRequest(endpoint?: string): boolean {
86
+ private isLeaveRequest(endpoint?: string): boolean {
93
87
  return endpoint === '/leave_requests';
94
88
  }
95
89
 
96
- private buildQueryStr(queryParams: Record<string, ParameterValue> | undefined) {
97
- if (!queryParams) return '';
98
- const reducedParams = Object.entries(queryParams).reduce((params, [key, val]) => {
90
+ private buildQueryParams(options?: Options, extraParams?: Record<string, ParameterValue>) {
91
+ const queryParams: Record<string, ParameterValue> = {
92
+ expand: options?.expand,
93
+ fields: options?.fields,
94
+ limit: options?.limit,
95
+ offset: options?.offset,
96
+ dry_run: options?.dryRun,
97
+ ...extraParams,
98
+ // NOTE: Should not overridable so must come after spread of params
99
+ exclude_link_header: true,
100
+ };
101
+ const reducedParams = Object.entries(queryParams ?? {}).reduce((params, [key, val]) => {
99
102
  if (val !== undefined && val !== '') {
100
103
  if (Array.isArray(val)) params.push(...val.map((item) => [`${key}[]`, String(item)]));
101
104
  else params.push([key, String(val)]);
@@ -103,21 +106,11 @@ export abstract class Service<ApiResponse = any> {
103
106
  return params;
104
107
  }, [] as string[][]);
105
108
 
106
- return new URLSearchParams(reducedParams).toString();
107
- }
108
-
109
- private parsePageLinkHeader(linkHeader: string): Partial<PagingObject> {
110
- const pageData = {};
111
- for (const link of linkHeader.split(',')) {
112
- const { rel, url } = link.match(/<(?<url>.*)>; rel="(?<rel>\w*)"/)?.groups ?? {};
113
- pageData[rel] = url;
114
- }
115
-
116
- return pageData;
109
+ return new URLSearchParams(reducedParams);
117
110
  }
118
111
 
119
- public fetch<T = ApiResponse>(httpOptions: AxiosRequestConfig, options?: Options): Promise<AxiosResponse<T>> {
120
- const headers: AxiosRequestHeaders = {
112
+ fetch<T = ApiResponse>(reqConfig: AxiosRequestConfig, options?: Options): Promise<AxiosResponse<T>> {
113
+ const headers: Record<string, string> = {
121
114
  Authorization: `Bearer ${RotaCloud.config.apiKey}`,
122
115
  'SDK-Version': Version.version,
123
116
  };
@@ -135,21 +128,14 @@ export abstract class Service<ApiResponse = any> {
135
128
  headers.Account = String(RotaCloud.config.accountId);
136
129
  } else {
137
130
  // need to convert user field in payload to a header for creating leave_requests when using an API key
138
- this.isLeaveRequest(httpOptions.url) ? (headers.User = `${httpOptions.data.user}`) : undefined;
131
+ this.isLeaveRequest(reqConfig.url) ? (headers.User = `${reqConfig.data.user}`) : undefined;
139
132
  }
140
133
 
141
- const reqObject: AxiosRequestConfig<T> = {
142
- ...httpOptions,
134
+ const finalReqConfig: AxiosRequestConfig<T> = {
135
+ ...reqConfig,
143
136
  baseURL: RotaCloud.config.baseUri,
144
137
  headers,
145
- params: {
146
- expand: options?.expand,
147
- fields: options?.fields,
148
- limit: options?.limit,
149
- dry_run: options?.dryRun,
150
- ...httpOptions?.params,
151
- },
152
- paramsSerializer: this.buildQueryStr,
138
+ params: this.buildQueryParams(options, reqConfig.params),
153
139
  };
154
140
 
155
141
  if (RotaCloud.config.retry) {
@@ -169,52 +155,37 @@ export abstract class Service<ApiResponse = any> {
169
155
  });
170
156
  }
171
157
 
172
- return this.client.request<T>(reqObject);
158
+ return this.client.request<T>(finalReqConfig);
173
159
  }
174
160
 
175
- private async *listFetch<T = ApiResponse>(
176
- reqObject: AxiosRequestConfig<T[]>,
177
- options?: Options
178
- ): AsyncGenerator<AxiosResponse<T[], any>> {
179
- let pageRequestObject = reqObject;
180
- let currentPageUrl = pageRequestObject.url;
181
-
182
- let pageRemaining = true;
183
- while (pageRemaining) {
184
- const res = await this.fetch<T[]>(pageRequestObject, options);
185
- const pageLinkMap = this.parsePageLinkHeader(res.headers.link ?? '');
186
- pageRemaining = Boolean(pageLinkMap.next);
187
- // NOTE: query params including paging options are included in the "next" link
188
- pageRequestObject = { url: pageLinkMap.next };
189
- yield res;
190
-
191
- // Failsafe incase the page does not change
192
- if (currentPageUrl === pageRequestObject.url) {
193
- throw new Error('Next page link did not change');
194
- }
195
- currentPageUrl = pageRequestObject.url;
161
+ /** Iterates through every page for a potentially paginated request */
162
+ private async *fetchPages<T>(
163
+ reqConfig: AxiosRequestConfig<T[]>,
164
+ options: Options | undefined
165
+ ): AsyncGenerator<AxiosResponse<T[]>> {
166
+ const fallbackLimit = 20;
167
+ const res = await this.fetch<T[]>(reqConfig, options);
168
+ yield res;
169
+
170
+ const limit = Number(res.headers['x-limit']) || fallbackLimit;
171
+ const entityCount = Number(res.headers['x-total-count']) || 0;
172
+ const requestOffset = Number(res.headers['x-offset']) || 0;
173
+
174
+ for (let offset = requestOffset + limit; offset < entityCount; offset += limit) {
175
+ yield this.fetch<T[]>(reqConfig, { ...options, offset });
196
176
  }
197
177
  }
198
178
 
199
- private async *listResponses<T = ApiResponse>(reqObject: AxiosRequestConfig<T[]>, options?: Options) {
200
- for await (const res of this.listFetch<T>(reqObject, options)) {
179
+ private async *listResponses<T = ApiResponse>(reqConfig: AxiosRequestConfig<T[]>, options?: Options) {
180
+ for await (const res of this.fetchPages<T>(reqConfig, options)) {
201
181
  yield* res.data;
202
182
  }
203
183
  }
204
184
 
205
- public iterator<T = ApiResponse>(reqObject: AxiosRequestConfig<T[]>, options?: Options) {
206
- const iterator = this.listResponses<T>(reqObject, options);
185
+ iterator<T = ApiResponse>(reqConfig: AxiosRequestConfig<T[]>, options?: Options) {
207
186
  return {
208
- [Symbol.asyncIterator]() {
209
- return {
210
- next() {
211
- return iterator.next();
212
- },
213
- };
214
- },
215
- byPage: () => {
216
- return this.listFetch<T>(reqObject, options);
217
- },
187
+ [Symbol.asyncIterator]: () => this.listResponses<T>(reqConfig, options),
188
+ byPage: () => this.fetchPages<T>(reqConfig, options),
218
189
  };
219
190
  }
220
191
  }
@@ -51,31 +51,62 @@ export class ShiftsService extends Service {
51
51
  return super.iterator<ApiShift>({ url: this.apiPath, params: query }, options).byPage();
52
52
  }
53
53
 
54
- update(id: number, data: Partial<ApiShift>): Promise<Shift>;
54
+ update(shift: RequirementsOf<ApiShift, 'id'>): Promise<Shift>;
55
55
  update(
56
- id: number,
57
- data: Partial<ApiShift>,
56
+ shift: RequirementsOf<ApiShift, 'id'>,
58
57
  options: { rawResponse: true } & Options
59
- ): Promise<AxiosResponse<ApiShift, any>>;
60
- update(id: number, data: Partial<ApiShift>, options: Options): Promise<Shift>;
61
- update(id: number, data: Partial<ApiShift>, options?: Options) {
58
+ ): Promise<AxiosResponse<ApiShift>>;
59
+ update(shift: RequirementsOf<ApiShift, 'id'>, options: Options): Promise<Shift>;
60
+ update(
61
+ shifts: RequirementsOf<ApiShift, 'id'>[]
62
+ ): Promise<{ success: Shift[]; failed: { id: number; error: string }[] }>;
63
+ update(shift: RequirementsOf<ApiShift, 'id'>, options: Options): Promise<Shift>;
64
+ update(
65
+ shifts: RequirementsOf<ApiShift, 'id'>[],
66
+ options: { rawResponse: true } & Options
67
+ ): Promise<AxiosResponse<{ code: number; data?: ApiShift; error?: string }[]>>;
68
+ update(
69
+ shifts: RequirementsOf<ApiShift, 'id'>[],
70
+ options: Options
71
+ ): Promise<{ success: Shift[]; failed: { id: number; error: string }[] }>;
72
+ update(shifts: RequirementsOf<ApiShift, 'id'> | RequirementsOf<ApiShift, 'id'>[], options?: Options) {
73
+ if (!Array.isArray(shifts)) {
74
+ return super
75
+ .fetch<ApiShift>({
76
+ url: `${this.apiPath}/${shifts.id}`,
77
+ data: shifts,
78
+ method: 'POST',
79
+ })
80
+ .then((res) => (options?.rawResponse ? res : new Shift(res.data)));
81
+ }
82
+
62
83
  return super
63
- .fetch<ApiShift>({
64
- url: `${this.apiPath}/${id}`,
65
- data,
84
+ .fetch<{ code: number; data?: ApiShift; error?: string }[]>({
85
+ url: this.apiPath,
86
+ data: shifts,
66
87
  method: 'POST',
67
88
  })
68
- .then((res) => Promise.resolve(options?.rawResponse ? res : new Shift(res.data)));
89
+ .then((res) => {
90
+ if (options?.rawResponse) return res;
91
+
92
+ const success: Shift[] = [];
93
+ const failed: { id: number; error: string }[] = [];
94
+ for (let shiftIdx = 0; shiftIdx < res.data.length; shiftIdx += 1) {
95
+ const { data, error } = res.data[shiftIdx];
96
+ if (data) success.push(new Shift(data));
97
+ if (error) failed.push({ id: shifts[shiftIdx].id, error });
98
+ }
99
+ return { success, failed };
100
+ });
69
101
  }
70
102
 
71
103
  delete(ids: number | number[]): Promise<number>;
72
104
  delete(ids: number | number[], options: { rawResponse: true } & Options): Promise<AxiosResponse<any, any>>;
73
105
  delete(ids: number | number[], options: Options): Promise<number>;
74
106
  delete(ids: number | number[], options?: Options) {
75
- const params: AxiosRequestConfig =
76
- typeof ids !== 'number'
77
- ? { url: this.apiPath, data: ids, method: 'DELETE' }
78
- : { url: `${this.apiPath}/${ids}`, method: 'DELETE' };
107
+ const params: AxiosRequestConfig = Array.isArray(ids)
108
+ ? { url: this.apiPath, data: { ids }, method: 'DELETE' }
109
+ : { url: `${this.apiPath}/${ids}`, method: 'DELETE' };
79
110
 
80
111
  return super.fetch<ApiShift>(params).then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
81
112
  }
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const Version = { version: '1.0.52' };
1
+ export const Version = { version: '1.0.55' };
@@ -1,6 +0,0 @@
1
- export interface ApiAccountService {
2
- active: boolean;
3
- billed: boolean;
4
- hidden: boolean;
5
- trial_expires?: string;
6
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,6 +0,0 @@
1
- import { ApiAccountService } from './index.js';
2
- export interface ApiAccountServices {
3
- time_attendance: ApiAccountService;
4
- sms: ApiAccountService;
5
- pro: ApiAccountService;
6
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,40 +0,0 @@
1
- import { ApiAccountServices } from './index.js';
2
- export interface ApiAccount {
3
- id: number;
4
- name: string;
5
- level: string;
6
- created: number;
7
- expired: boolean;
8
- owner: number;
9
- timezone: number;
10
- industry: number;
11
- phone: string;
12
- address_1: string;
13
- address_2: string;
14
- city: string;
15
- county: string;
16
- postcode: string;
17
- country: number;
18
- services: ApiAccountServices[];
19
- total_price: number;
20
- pricing: object;
21
- expires_in: number;
22
- features_disabled: string[];
23
- first_billed: string;
24
- owed: number;
25
- trial: boolean;
26
- can_restart_trial: boolean;
27
- next_billed: string;
28
- hide_billing: boolean;
29
- total_employees: number;
30
- payment_card: string;
31
- billing_type: string;
32
- billing_term: string;
33
- billing_email: string;
34
- billing_address: string;
35
- grouped_billing_parent: number;
36
- grouped_billing_children: number[];
37
- vat_number: string;
38
- suspended: boolean;
39
- suspended_message: string;
40
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,31 +0,0 @@
1
- import { ApiShift } from './index.js';
2
- export interface ApiAttendanceLocation {
3
- lat: number;
4
- lng: number;
5
- accuracy: number;
6
- }
7
- export interface ApiAttendance {
8
- id: number;
9
- deleted: boolean;
10
- approved: boolean;
11
- in_time: number;
12
- out_time: number;
13
- minutes_break: number;
14
- user: number;
15
- location: number;
16
- role: number;
17
- minutes_late: number;
18
- hours: number;
19
- hours_auto: number;
20
- hours_is_auto: boolean;
21
- notes: string | null;
22
- shift: ApiShift | null;
23
- in_method: string;
24
- out_method: string;
25
- in_location: ApiAttendanceLocation;
26
- out_location: ApiAttendanceLocation;
27
- in_device: number;
28
- out_device: number;
29
- in_terminal: null;
30
- out_terminal: null;
31
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,8 +0,0 @@
1
- export interface ApiAuthAccount {
2
- id: number;
3
- name: string;
4
- }
5
- export interface ApiAuth {
6
- two_factor_enabled: boolean;
7
- accounts: ApiAuthAccount[];
8
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,20 +0,0 @@
1
- import { ApiAvailabilityPeriod } from './index.js';
2
- export interface ApiAvailabilityPatternAvailability {
3
- available: ApiAvailabilityPeriod[];
4
- unavailable: ApiAvailabilityPeriod[];
5
- }
6
- export interface ApiAvailabilityPattern {
7
- id: number;
8
- user: number;
9
- name: string;
10
- start_date: string;
11
- end_date: string;
12
- repeat_weeks: number;
13
- mon: ApiAvailabilityPatternAvailability;
14
- tue: ApiAvailabilityPatternAvailability;
15
- wed: ApiAvailabilityPatternAvailability;
16
- thu: ApiAvailabilityPatternAvailability;
17
- fri: ApiAvailabilityPatternAvailability;
18
- sat: ApiAvailabilityPatternAvailability;
19
- sun: ApiAvailabilityPatternAvailability;
20
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,13 +0,0 @@
1
- export interface ApiAvailabilityPeriod {
2
- start_time: string;
3
- end_time: string;
4
- }
5
- export interface ApiAvailabilityDate {
6
- date: string;
7
- available: ApiAvailabilityPeriod[];
8
- unavailable: ApiAvailabilityPeriod[];
9
- }
10
- export interface ApiAvailability {
11
- user: number;
12
- dates: ApiAvailabilityDate[];
13
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,6 +0,0 @@
1
- export interface ApiDailyBudgets {
2
- date: string;
3
- location: number;
4
- hours_budget: number;
5
- salary_budget: number;
6
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,7 +0,0 @@
1
- export interface ApiDailyRevenue {
2
- date: string;
3
- location: number;
4
- labour_percentage: number;
5
- revenue_target: number;
6
- revenue_actual: number;
7
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,9 +0,0 @@
1
- export interface ApiDayNote {
2
- id: number;
3
- start_date: string;
4
- end_date: string;
5
- locations: number[];
6
- title: string;
7
- message: string;
8
- visible_employees: boolean;
9
- }
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });