rotacloud 1.0.3 → 1.0.6

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 (198) hide show
  1. package/.github/workflows/node.js.yml +2 -12
  2. package/README.md +1 -1
  3. package/dist/interfaces/account-service.interface.d.ts +6 -0
  4. package/dist/interfaces/account-service.interface.js +1 -0
  5. package/dist/interfaces/account-services.interface.d.ts +6 -0
  6. package/dist/interfaces/account-services.interface.js +1 -0
  7. package/dist/interfaces/account.interface.d.ts +40 -0
  8. package/dist/interfaces/account.interface.js +1 -0
  9. package/dist/interfaces/attendance.interface.d.ts +31 -0
  10. package/dist/interfaces/attendance.interface.js +1 -0
  11. package/dist/interfaces/availability-pattern.interface.d.ts +20 -0
  12. package/dist/interfaces/availability-pattern.interface.js +1 -0
  13. package/dist/interfaces/availability.interface.d.ts +13 -0
  14. package/dist/interfaces/availability.interface.js +1 -0
  15. package/dist/interfaces/daily-budgets.interface.d.ts +6 -0
  16. package/dist/interfaces/daily-budgets.interface.js +1 -0
  17. package/dist/interfaces/daily-revenue.interface.d.ts +7 -0
  18. package/dist/interfaces/daily-revenue.interface.js +1 -0
  19. package/dist/interfaces/day-notes.interface.d.ts +8 -0
  20. package/dist/interfaces/day-notes.interface.js +1 -0
  21. package/dist/interfaces/days-off-pattern.interface.d.ts +13 -0
  22. package/dist/interfaces/days-off-pattern.interface.js +1 -0
  23. package/dist/interfaces/days-off.interface.d.ts +8 -0
  24. package/dist/interfaces/days-off.interface.js +1 -0
  25. package/dist/interfaces/group.interface.d.ts +7 -0
  26. package/dist/interfaces/group.interface.js +1 -0
  27. package/dist/interfaces/holiday_allowance.interface.d.ts +11 -0
  28. package/dist/interfaces/holiday_allowance.interface.js +1 -0
  29. package/dist/interfaces/index.d.ts +29 -0
  30. package/dist/interfaces/index.js +29 -0
  31. package/dist/interfaces/leave-date.interface.d.ts +8 -0
  32. package/dist/interfaces/leave-date.interface.js +1 -0
  33. package/dist/interfaces/leave-embargo.interface.d.ts +10 -0
  34. package/dist/interfaces/leave-embargo.interface.js +1 -0
  35. package/dist/interfaces/leave-rate.interface.d.ts +3 -0
  36. package/dist/interfaces/leave-rate.interface.js +1 -0
  37. package/dist/interfaces/leave-request.interface.d.ts +13 -0
  38. package/dist/interfaces/leave-request.interface.js +1 -0
  39. package/dist/interfaces/leave-type.interface.d.ts +8 -0
  40. package/dist/interfaces/leave-type.interface.js +1 -0
  41. package/dist/interfaces/leave.interface.d.ts +28 -0
  42. package/dist/interfaces/leave.interface.js +1 -0
  43. package/dist/interfaces/location-coordinate.interface.d.ts +5 -0
  44. package/dist/interfaces/location-coordinate.interface.js +1 -0
  45. package/dist/interfaces/location.interface.d.ts +13 -0
  46. package/dist/interfaces/location.interface.js +1 -0
  47. package/dist/interfaces/logbook-category.interface.d.ts +4 -0
  48. package/dist/interfaces/logbook-category.interface.js +1 -0
  49. package/dist/interfaces/logbook-event.interface.d.ts +16 -0
  50. package/dist/interfaces/logbook-event.interface.js +1 -0
  51. package/dist/interfaces/pay-period.interface.d.ts +16 -0
  52. package/dist/interfaces/pay-period.interface.js +1 -0
  53. package/dist/interfaces/query-params/attendance-query-params.interface.d.ts +9 -0
  54. package/dist/interfaces/query-params/attendance-query-params.interface.js +1 -0
  55. package/dist/interfaces/query-params/availability-patterns-query-params.interface.d.ts +5 -0
  56. package/dist/interfaces/query-params/availability-patterns-query-params.interface.js +1 -0
  57. package/dist/interfaces/query-params/availability-query-params.interface.d.ts +5 -0
  58. package/dist/interfaces/query-params/availability-query-params.interface.js +1 -0
  59. package/dist/interfaces/query-params/common-shift-times-query-params.interface.d.ts +3 -0
  60. package/dist/interfaces/query-params/common-shift-times-query-params.interface.js +1 -0
  61. package/dist/interfaces/query-params/daily-budgets-query-params.interface.d.ts +5 -0
  62. package/dist/interfaces/query-params/daily-budgets-query-params.interface.js +1 -0
  63. package/dist/interfaces/query-params/daily-revenue-query-params.interface.d.ts +5 -0
  64. package/dist/interfaces/query-params/daily-revenue-query-params.interface.js +1 -0
  65. package/dist/interfaces/query-params/day-notes-query-params.interface.d.ts +5 -0
  66. package/dist/interfaces/query-params/day-notes-query-params.interface.js +1 -0
  67. package/dist/interfaces/query-params/days-off-patterns-query-params.interface.d.ts +5 -0
  68. package/dist/interfaces/query-params/days-off-patterns-query-params.interface.js +1 -0
  69. package/dist/interfaces/query-params/days-off-query-params.interface.d.ts +5 -0
  70. package/dist/interfaces/query-params/days-off-query-params.interface.js +1 -0
  71. package/dist/interfaces/query-params/documents-query-params.interface.d.ts +4 -0
  72. package/dist/interfaces/query-params/documents-query-params.interface.js +1 -0
  73. package/dist/interfaces/query-params/groups-query-params.interface.d.ts +3 -0
  74. package/dist/interfaces/query-params/groups-query-params.interface.js +1 -0
  75. package/dist/interfaces/query-params/internal-query-params.inteface.d.ts +5 -0
  76. package/dist/interfaces/query-params/internal-query-params.inteface.js +1 -0
  77. package/dist/interfaces/query-params/leave-embargoes-query-params.interface.d.ts +5 -0
  78. package/dist/interfaces/query-params/leave-embargoes-query-params.interface.js +1 -0
  79. package/dist/interfaces/query-params/leave-query-params.interface.d.ts +13 -0
  80. package/dist/interfaces/query-params/leave-query-params.interface.js +1 -0
  81. package/dist/interfaces/query-params/leave-requests-query-params.interface.d.ts +5 -0
  82. package/dist/interfaces/query-params/leave-requests-query-params.interface.js +1 -0
  83. package/dist/interfaces/query-params/locations-query-params.interface.d.ts +7 -0
  84. package/dist/interfaces/query-params/locations-query-params.interface.js +1 -0
  85. package/dist/interfaces/query-params/logbook-events-query-params.interface.d.ts +3 -0
  86. package/dist/interfaces/query-params/logbook-events-query-params.interface.js +1 -0
  87. package/dist/interfaces/query-params/pay-periods-query-params.interface.d.ts +4 -0
  88. package/dist/interfaces/query-params/pay-periods-query-params.interface.js +1 -0
  89. package/dist/interfaces/query-params/roles-query-params.interface.d.ts +5 -0
  90. package/dist/interfaces/query-params/roles-query-params.interface.js +1 -0
  91. package/dist/interfaces/query-params/shifts-query-params.interface.d.ts +14 -0
  92. package/dist/interfaces/query-params/shifts-query-params.interface.js +1 -0
  93. package/dist/interfaces/query-params/swap-requests-query-params.interface.d.ts +8 -0
  94. package/dist/interfaces/query-params/swap-requests-query-params.interface.js +1 -0
  95. package/dist/interfaces/query-params/terminals-query-params.interface.d.ts +3 -0
  96. package/dist/interfaces/query-params/terminals-query-params.interface.js +1 -0
  97. package/dist/interfaces/query-params/unavailability-requests-query-params.interface.d.ts +8 -0
  98. package/dist/interfaces/query-params/unavailability-requests-query-params.interface.js +1 -0
  99. package/dist/interfaces/query-params/users-query-params.interface.d.ts +17 -0
  100. package/dist/interfaces/query-params/users-query-params.interface.js +1 -0
  101. package/dist/interfaces/role-rate.interface.d.ts +6 -0
  102. package/dist/interfaces/role-rate.interface.js +1 -0
  103. package/dist/interfaces/role.interface.d.ts +9 -0
  104. package/dist/interfaces/role.interface.js +1 -0
  105. package/dist/interfaces/sdk-config.interface.d.ts +6 -0
  106. package/dist/interfaces/sdk-config.interface.js +1 -0
  107. package/dist/interfaces/shift.interface.d.ts +25 -0
  108. package/dist/interfaces/shift.interface.js +1 -0
  109. package/dist/interfaces/user.interface.d.ts +38 -0
  110. package/dist/interfaces/user.interface.js +1 -0
  111. package/dist/models/account.model.d.ts +8 -0
  112. package/dist/models/account.model.js +8 -0
  113. package/dist/models/attendance.model.d.ts +7 -0
  114. package/dist/models/attendance.model.js +7 -0
  115. package/dist/models/availability-pattern.model.d.ts +17 -0
  116. package/dist/models/availability-pattern.model.js +5 -0
  117. package/dist/models/availability.model.d.ts +6 -0
  118. package/dist/models/availability.model.js +6 -0
  119. package/dist/models/daily-budgets.model.d.ts +8 -0
  120. package/dist/models/daily-budgets.model.js +6 -0
  121. package/dist/models/daily-revenue.model.d.ts +9 -0
  122. package/dist/models/daily-revenue.model.js +6 -0
  123. package/dist/models/day-notes.model.d.ts +10 -0
  124. package/dist/models/day-notes.model.js +5 -0
  125. package/dist/models/days-off-pattern.model.d.ts +15 -0
  126. package/dist/models/days-off-pattern.model.js +5 -0
  127. package/dist/models/days-off.model.d.ts +6 -0
  128. package/dist/models/days-off.model.js +6 -0
  129. package/dist/models/document.model.d.ts +12 -0
  130. package/dist/models/document.model.js +2 -0
  131. package/dist/models/error-response.model.d.ts +8 -0
  132. package/dist/models/error-response.model.js +8 -0
  133. package/dist/models/group.model.d.ts +6 -0
  134. package/dist/models/group.model.js +6 -0
  135. package/dist/models/holiday-allowance-custom.model.d.ts +5 -0
  136. package/dist/models/holiday-allowance-custom.model.js +2 -0
  137. package/dist/models/holiday-allowance.model.d.ts +13 -0
  138. package/dist/models/holiday-allowance.model.js +5 -0
  139. package/dist/models/leave-embargo.model.d.ts +6 -0
  140. package/dist/models/leave-embargo.model.js +6 -0
  141. package/dist/models/leave-request.model.d.ts +14 -0
  142. package/dist/models/leave-request.model.js +5 -0
  143. package/dist/models/leave-type.model.d.ts +10 -0
  144. package/dist/models/leave-type.model.js +6 -0
  145. package/dist/models/leave.model.d.ts +6 -0
  146. package/dist/models/leave.model.js +6 -0
  147. package/dist/models/location.model.d.ts +11 -0
  148. package/dist/models/location.model.js +8 -0
  149. package/dist/models/logbook-category.model.d.ts +7 -0
  150. package/dist/models/logbook-category.model.js +6 -0
  151. package/dist/models/logbook-event.model.d.ts +5 -0
  152. package/dist/models/logbook-event.model.js +5 -0
  153. package/dist/models/memo.model.d.ts +8 -0
  154. package/dist/models/memo.model.js +2 -0
  155. package/dist/models/pay-period.model.d.ts +6 -0
  156. package/dist/models/pay-period.model.js +6 -0
  157. package/dist/models/role.model.d.ts +7 -0
  158. package/dist/models/role.model.js +6 -0
  159. package/dist/models/settings.model.d.ts +65 -0
  160. package/dist/models/settings.model.js +2 -0
  161. package/dist/models/shift.model.d.ts +24 -0
  162. package/dist/models/shift.model.js +24 -0
  163. package/dist/models/terminal.model.d.ts +19 -0
  164. package/dist/models/terminal.model.js +4 -0
  165. package/dist/models/user.model.d.ts +33 -0
  166. package/dist/models/user.model.js +10 -0
  167. package/dist/rotacloud.d.ts +20 -0
  168. package/dist/rotacloud.js +27 -0
  169. package/dist/services/accounts.service.d.ts +11 -0
  170. package/dist/services/accounts.service.js +17 -0
  171. package/dist/services/attendance.service.d.ts +38 -0
  172. package/dist/services/attendance.service.js +36 -0
  173. package/dist/services/days-off.service.d.ts +24 -0
  174. package/dist/services/days-off.service.js +42 -0
  175. package/dist/services/index.d.ts +10 -0
  176. package/dist/services/index.js +10 -0
  177. package/dist/services/leave-embargoes.service.d.ts +38 -0
  178. package/dist/services/leave-embargoes.service.js +36 -0
  179. package/dist/services/leave-request.service.d.ts +37 -0
  180. package/dist/services/leave-request.service.js +36 -0
  181. package/dist/services/leave.service.d.ts +40 -0
  182. package/dist/services/leave.service.js +42 -0
  183. package/dist/services/locations.service.d.ts +38 -0
  184. package/dist/services/locations.service.js +36 -0
  185. package/dist/services/roles.service.d.ts +38 -0
  186. package/dist/services/roles.service.js +36 -0
  187. package/dist/services/service.d.ts +20 -0
  188. package/dist/services/service.js +95 -0
  189. package/dist/services/shifts.service.d.ts +56 -0
  190. package/dist/services/shifts.service.js +45 -0
  191. package/dist/services/users.service.d.ts +38 -0
  192. package/dist/services/users.service.js +36 -0
  193. package/dist/version.d.ts +3 -0
  194. package/dist/version.js +1 -0
  195. package/package.json +1 -1
  196. package/src/rotacloud.ts +3 -3
  197. package/src/services/service.ts +5 -5
  198. package/src/version.ts +1 -1
@@ -0,0 +1,5 @@
1
+ import { ApiLogbookEvent } from '../interfaces/index.js';
2
+ export declare class LogBookEvent {
3
+ id: number;
4
+ constructor(logbookEvent: ApiLogbookEvent);
5
+ }
@@ -0,0 +1,5 @@
1
+ export class LogBookEvent {
2
+ constructor(logbookEvent) {
3
+ this.id = logbookEvent.id;
4
+ }
5
+ }
@@ -0,0 +1,8 @@
1
+ export declare class Memo {
2
+ id: number;
3
+ sent_at: number;
4
+ sent_by: number;
5
+ subject: string;
6
+ message: string;
7
+ users: number[];
8
+ }
@@ -0,0 +1,2 @@
1
+ export class Memo {
2
+ }
@@ -0,0 +1,6 @@
1
+ import { ApiPayPeriod } from '../interfaces/index.js';
2
+ export declare class PayPeriod {
3
+ id: number;
4
+ name: string;
5
+ constructor(payPeriod: ApiPayPeriod);
6
+ }
@@ -0,0 +1,6 @@
1
+ export class PayPeriod {
2
+ constructor(payPeriod) {
3
+ this.id = payPeriod.id;
4
+ this.name = payPeriod.name;
5
+ }
6
+ }
@@ -0,0 +1,7 @@
1
+ import { ApiRole } from '../interfaces/index.js';
2
+ export declare class Role {
3
+ id: number;
4
+ name: string;
5
+ colour: string;
6
+ constructor(role: ApiRole);
7
+ }
@@ -0,0 +1,6 @@
1
+ export class Role {
2
+ constructor(role) {
3
+ this.id = role.id;
4
+ this.name = role.name;
5
+ }
6
+ }
@@ -0,0 +1,65 @@
1
+ interface PayCodes {
2
+ [pay_code_id: string]: string | {
3
+ [leave_type_id: string]: string;
4
+ };
5
+ }
6
+ export declare class Settings {
7
+ attendance_record_breaks: string;
8
+ automatically_clock_in_to_consecutive_shifts: boolean;
9
+ availability_employees_can_edit: boolean;
10
+ availability_managers_can_edit: boolean;
11
+ breaks_paid: boolean;
12
+ clock_in_out_reminders_minutes: number;
13
+ clock_in_without_shift_allowed: string;
14
+ currency_symbol: string;
15
+ dashboard_show_unpublished_shifts: boolean;
16
+ early_clock_ins_paid_from: string;
17
+ early_clock_in_minutes: number;
18
+ employee_shift_note_visibility: string;
19
+ employees_can_edit_timesheets: boolean;
20
+ employees_can_only_see_self: boolean;
21
+ employees_can_see_all_locations: boolean;
22
+ employees_can_see_everyones_leave: boolean;
23
+ flag_in_out_discrepancies_minutes: number;
24
+ holiday_accrual_rate: number;
25
+ late_clock_outs_paid_until: string;
26
+ lateness_added_after_minutes: number;
27
+ leave_can_request_over_allowance: boolean;
28
+ leave_prorate_allowances: boolean;
29
+ leave_requests_enabled: boolean;
30
+ leave_requests_notice_days: number;
31
+ leave_year_start_day: number;
32
+ leave_year_start_month: number;
33
+ metadata_enabled: boolean;
34
+ mobile_clocking_enabled: boolean;
35
+ no_show_notifications_minutes: number;
36
+ open_shift_claiming_enabled: boolean;
37
+ public_holiday_affects_allowance: boolean;
38
+ reminders_enabled: boolean;
39
+ rota_grouping: string;
40
+ rota_salaried_cost_method: string;
41
+ rota_show_employee_photos: boolean;
42
+ round_breaks: string;
43
+ round_breaks_direction: string;
44
+ round_currency: string;
45
+ round_currency_direction: string;
46
+ round_hours: string;
47
+ round_hours_direction: string;
48
+ shift_acknowledgement_enabled: boolean;
49
+ shift_swaps_across_locations_enabled: boolean;
50
+ shift_swaps_enabled: boolean;
51
+ shift_swaps_notice_hours: number;
52
+ shift_swaps_require_approval: boolean;
53
+ shift_swaps_shift_range_days: number;
54
+ show_open_shifts_from_other_locations: boolean;
55
+ show_shifts_from_other_locations: boolean;
56
+ time_format: string;
57
+ unavailability_notice_hours: number;
58
+ unavailability_requests_enabled: boolean;
59
+ unpaid_leave_types_included_in_accrual: number[];
60
+ paid_leave_types_included_in_accrual: number[];
61
+ week_starts: string;
62
+ pay_codes: PayCodes;
63
+ webhook_signing_secret: string;
64
+ }
65
+ export {};
@@ -0,0 +1,2 @@
1
+ export class Settings {
2
+ }
@@ -0,0 +1,24 @@
1
+ import { ApiShift } from '../interfaces/index.js';
2
+ export declare class Shift {
3
+ id: number;
4
+ deleted: boolean;
5
+ published: boolean;
6
+ open: boolean;
7
+ start_time: number;
8
+ end_time: number;
9
+ minutes_break: number;
10
+ user: number;
11
+ location: number;
12
+ role: number | null;
13
+ notes: string | null;
14
+ created_by: number;
15
+ created_at: number;
16
+ updated_at: number | null;
17
+ claimed: boolean;
18
+ claimed_at: number | null;
19
+ acknowledged: boolean;
20
+ acknowledged_at: number | null;
21
+ swap_requests: number[];
22
+ unavailability_requests: number[];
23
+ constructor(shift: ApiShift);
24
+ }
@@ -0,0 +1,24 @@
1
+ export class Shift {
2
+ constructor(shift) {
3
+ this.id = shift.id;
4
+ this.deleted = shift.deleted;
5
+ this.open = shift.open;
6
+ this.published = shift.published;
7
+ this.start_time = shift.start_time;
8
+ this.end_time = shift.end_time;
9
+ this.minutes_break = shift.minutes_break;
10
+ this.user = shift.user;
11
+ this.location = shift.location;
12
+ this.role = shift.role;
13
+ this.notes = shift.notes;
14
+ this.created_by = shift.created_by;
15
+ this.created_at = shift.created_at;
16
+ this.updated_at = shift.updated_at;
17
+ this.claimed = shift.claimed;
18
+ this.claimed_at = shift.claimed_at;
19
+ this.acknowledged = shift.acknowledged;
20
+ this.acknowledged_at = shift.acknowledged_at;
21
+ this.swap_requests = shift.swap_requests;
22
+ this.unavailability_requests = shift.unavailability_requests;
23
+ }
24
+ }
@@ -0,0 +1,19 @@
1
+ export declare class LatLngObject {
2
+ lat: number;
3
+ lng: number;
4
+ radius: number;
5
+ }
6
+ export declare class Terminal {
7
+ id: number;
8
+ deleted: boolean;
9
+ name: string;
10
+ active: boolean;
11
+ type: string;
12
+ device: string;
13
+ version: string;
14
+ ip: string;
15
+ location: LatLngObject;
16
+ timezone: number;
17
+ require_photo: boolean;
18
+ require_photo_breaks: boolean;
19
+ }
@@ -0,0 +1,4 @@
1
+ export class LatLngObject {
2
+ }
3
+ export class Terminal {
4
+ }
@@ -0,0 +1,33 @@
1
+ import { ApiUser } from '../interfaces/user.interface.js';
2
+ export interface LeaveRates {
3
+ [leave_type_id: string]: number;
4
+ }
5
+ export interface RolePayCodes {
6
+ [role_id: string]: string;
7
+ }
8
+ export interface RoleRates {
9
+ [role_id: string]: {
10
+ per_hour: number;
11
+ per_shift: number;
12
+ };
13
+ }
14
+ export interface Preferences {
15
+ setup_steps_hidden: boolean;
16
+ }
17
+ export interface TeamProperties {
18
+ admin?: boolean;
19
+ features?: string[];
20
+ permissions?: string[];
21
+ product_updates_access_key?: string;
22
+ product_updates_access_secret?: string;
23
+ intercom?: any;
24
+ [other_properties: string]: any;
25
+ }
26
+ export declare class User {
27
+ id: number;
28
+ first_name: string;
29
+ last_name: string;
30
+ photo: string | null;
31
+ preferred_name: string | null;
32
+ constructor(user: ApiUser);
33
+ }
@@ -0,0 +1,10 @@
1
+ // Models should be an abstraction over Api Models/Responses
2
+ export class User {
3
+ constructor(user) {
4
+ this.id = user.id;
5
+ this.first_name = user.first_name;
6
+ this.last_name = user.last_name;
7
+ this.photo = user.photo;
8
+ this.preferred_name = user.preferred_name;
9
+ }
10
+ }
@@ -0,0 +1,20 @@
1
+ import { AccountsService, AttendanceService, LeaveEmbargoesService, LeaveRequestService, LeaveService, LocationsService, RolesService, ShiftsService, UsersService } from './services/index.js';
2
+ import { SDKConfig } from './interfaces/index.js';
3
+ import { DaysOffService } from './services/days-off.service.js';
4
+ export declare class RotaCloud {
5
+ static config: SDKConfig;
6
+ defaultAPIURI: string;
7
+ accounts: AccountsService;
8
+ attendance: AttendanceService;
9
+ daysOff: DaysOffService;
10
+ leaveEmbargoes: LeaveEmbargoesService;
11
+ leaveRequests: LeaveRequestService;
12
+ leave: LeaveService;
13
+ locations: LocationsService;
14
+ roles: RolesService;
15
+ shifts: ShiftsService;
16
+ users: UsersService;
17
+ constructor(config: SDKConfig);
18
+ get config(): SDKConfig;
19
+ set config(configVal: SDKConfig);
20
+ }
@@ -0,0 +1,27 @@
1
+ import { AccountsService, AttendanceService, LeaveEmbargoesService, LeaveRequestService, LeaveService, LocationsService, RolesService, ShiftsService, UsersService, } from './services/index.js';
2
+ import { DaysOffService } from './services/days-off.service.js';
3
+ export class RotaCloud {
4
+ constructor(config) {
5
+ this.defaultAPIURI = 'https://api.rotacloud.com/v1';
6
+ this.accounts = new AccountsService();
7
+ this.attendance = new AttendanceService();
8
+ this.daysOff = new DaysOffService();
9
+ this.leaveEmbargoes = new LeaveEmbargoesService();
10
+ this.leaveRequests = new LeaveRequestService();
11
+ this.leave = new LeaveService();
12
+ this.locations = new LocationsService();
13
+ this.roles = new RolesService();
14
+ this.shifts = new ShiftsService();
15
+ this.users = new UsersService();
16
+ if (!config.baseUri) {
17
+ config.baseUri = this.defaultAPIURI;
18
+ }
19
+ this.config = config;
20
+ }
21
+ get config() {
22
+ return RotaCloud.config;
23
+ }
24
+ set config(configVal) {
25
+ RotaCloud.config = configVal;
26
+ }
27
+ }
@@ -0,0 +1,11 @@
1
+ import { Account } from '../models/account.model.js';
2
+ import { Service, Options } from './index.js';
3
+ import { ApiAccount } from '../interfaces/index.js';
4
+ import { InternalQueryParams } from '../interfaces/query-params/internal-query-params.inteface.js';
5
+ declare class AccountsService extends Service {
6
+ private apiPath;
7
+ constructor();
8
+ list(options?: Options<InternalQueryParams>): AsyncGenerator<Account, void, unknown>;
9
+ listByPage(options?: Options<InternalQueryParams>): AsyncGenerator<import("axios").AxiosResponse<ApiAccount[], any>, any, unknown>;
10
+ }
11
+ export { AccountsService };
@@ -0,0 +1,17 @@
1
+ import { Account } from '../models/account.model.js';
2
+ import { Service } from './index.js';
3
+ class AccountsService extends Service {
4
+ constructor() {
5
+ super();
6
+ this.apiPath = '/accounts';
7
+ }
8
+ async *list(options) {
9
+ for await (const res of super.iterator({ url: this.apiPath }, options)) {
10
+ yield new Account(res);
11
+ }
12
+ }
13
+ listByPage(options) {
14
+ return super.iterator({ url: this.apiPath }, options).byPage();
15
+ }
16
+ }
17
+ export { AccountsService };
@@ -0,0 +1,38 @@
1
+ import { AxiosResponse } from 'axios';
2
+ import { ApiAttendance } from '../interfaces/index.js';
3
+ import { Service, Options, RequirementsOf } from './index.js';
4
+ import { Attendance } from '../models/attendance.model.js';
5
+ import { AttendanceQueryParams } from '../interfaces/query-params/attendance-query-params.interface.js';
6
+ import { InternalQueryParams } from '../interfaces/query-params/internal-query-params.inteface.js';
7
+ declare type RequiredProps = 'user' | 'in_time';
8
+ declare class AttendanceService extends Service {
9
+ private apiPath;
10
+ constructor();
11
+ create(data: RequirementsOf<ApiAttendance, RequiredProps>): Promise<Attendance>;
12
+ create(data: RequirementsOf<ApiAttendance, RequiredProps>, options: {
13
+ rawResponse: true;
14
+ params?: InternalQueryParams;
15
+ }): Promise<AxiosResponse<ApiAttendance, any>>;
16
+ create(data: RequirementsOf<ApiAttendance, RequiredProps>, options: Options<InternalQueryParams>): Promise<ApiAttendance>;
17
+ get(id: number): Promise<Attendance>;
18
+ get(id: number, options: {
19
+ rawResponse: true;
20
+ params?: InternalQueryParams;
21
+ }): Promise<AxiosResponse<ApiAttendance, any>>;
22
+ get(id: number, options: Options<InternalQueryParams>): Promise<ApiAttendance>;
23
+ list(options?: Options<AttendanceQueryParams & InternalQueryParams>): AsyncGenerator<Attendance, void, unknown>;
24
+ listByPage(options?: Options<AttendanceQueryParams & InternalQueryParams>): AsyncGenerator<AxiosResponse<ApiAttendance[], any>, any, unknown>;
25
+ update(id: number, data: Partial<ApiAttendance>): Promise<Attendance>;
26
+ update(id: number, data: Partial<ApiAttendance>, options: {
27
+ rawResponse: true;
28
+ params?: InternalQueryParams;
29
+ }): Promise<AxiosResponse<ApiAttendance, any>>;
30
+ update(id: number, data: Partial<ApiAttendance>, options: Options<InternalQueryParams>): Promise<Attendance>;
31
+ delete(id: number): Promise<number>;
32
+ delete(id: number, options: {
33
+ rawResponse: true;
34
+ params?: InternalQueryParams;
35
+ }): Promise<AxiosResponse<ApiAttendance, any>>;
36
+ delete(id: number, options: Options<InternalQueryParams>): Promise<number>;
37
+ }
38
+ export { AttendanceService };
@@ -0,0 +1,36 @@
1
+ import { Service } from './index.js';
2
+ import { Attendance } from '../models/attendance.model.js';
3
+ import { ErrorResponse } from '../models/error-response.model.js';
4
+ class AttendanceService extends Service {
5
+ constructor() {
6
+ super();
7
+ this.apiPath = '/attendance';
8
+ }
9
+ create(data, options) {
10
+ return super.fetch({ url: this.apiPath, data, method: 'POST' }).then((res) => Promise.resolve(options?.rawResponse ? res : new Attendance(res.data)), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
11
+ }
12
+ get(id, options) {
13
+ return super.fetch({ url: `${this.apiPath}/${id}` }, options).then((res) => Promise.resolve(options?.rawResponse ? res : new Attendance(res.data)), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
14
+ }
15
+ async *list(options) {
16
+ for await (const res of super.iterator({ url: this.apiPath }, options)) {
17
+ yield new Attendance(res);
18
+ }
19
+ }
20
+ listByPage(options) {
21
+ return super.iterator({ url: this.apiPath }, options).byPage();
22
+ }
23
+ update(id, data, options) {
24
+ return super
25
+ .fetch({
26
+ url: `${this.apiPath}/${id}`,
27
+ data,
28
+ method: 'POST',
29
+ })
30
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new Attendance(res.data)), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
31
+ }
32
+ delete(id, options) {
33
+ return super.fetch({ url: `${this.apiPath}/${id}`, method: 'DELETE' }).then((res) => Promise.resolve(options?.rawResponse ? res : res.status), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
34
+ }
35
+ }
36
+ export { AttendanceService };
@@ -0,0 +1,24 @@
1
+ import { AxiosResponse } from 'axios';
2
+ import { ApiDaysOff } from '../interfaces/index.js';
3
+ import { Service, Options } from './index.js';
4
+ import { InternalQueryParams } from '../interfaces/query-params/internal-query-params.inteface.js';
5
+ import { DaysOff } from '../models/days-off.model.js';
6
+ import { DaysOffQueryParams } from '../interfaces/query-params/days-off-query-params.interface.js';
7
+ declare class DaysOffService extends Service<ApiDaysOff> {
8
+ private apiPath;
9
+ create(dates: string[], users: number[]): Promise<number>;
10
+ create(dates: string[], users: number[], options: {
11
+ rawResponse: true;
12
+ params?: InternalQueryParams;
13
+ }): Promise<AxiosResponse<ApiDaysOff, any>>;
14
+ create(dates: string[], users: number[], options: Options<InternalQueryParams>): Promise<number>;
15
+ list(options?: Options<DaysOffQueryParams & InternalQueryParams>): AsyncGenerator<DaysOff, void, unknown>;
16
+ listByPage(options?: Options<DaysOffQueryParams & InternalQueryParams>): AsyncGenerator<AxiosResponse<ApiDaysOff[], any>, any, unknown>;
17
+ delete(dates: string[], users: number[]): Promise<number>;
18
+ delete(dates: string[], users: number[], options: {
19
+ rawResponse: true;
20
+ params?: InternalQueryParams;
21
+ }): Promise<AxiosResponse<any, any>>;
22
+ delete(dates: string[], users: number[], options: Options<InternalQueryParams>): Promise<number>;
23
+ }
24
+ export { DaysOffService };
@@ -0,0 +1,42 @@
1
+ import { Service } from './index.js';
2
+ import { ErrorResponse } from '../models/error-response.model.js';
3
+ import { DaysOff } from '../models/days-off.model.js';
4
+ class DaysOffService extends Service {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.apiPath = '/days_off';
8
+ }
9
+ create(dates, users, options) {
10
+ return super
11
+ .fetch({
12
+ url: this.apiPath,
13
+ data: {
14
+ dates,
15
+ users,
16
+ },
17
+ method: 'POST',
18
+ })
19
+ .then((res) => Promise.resolve(options?.rawResponse ? res : res.status), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
20
+ }
21
+ async *list(options) {
22
+ for await (const res of super.iterator({ url: this.apiPath }, options)) {
23
+ yield new DaysOff(res);
24
+ }
25
+ }
26
+ listByPage(options) {
27
+ return super.iterator({ url: this.apiPath }, options).byPage();
28
+ }
29
+ delete(dates, users, options) {
30
+ return super
31
+ .fetch({
32
+ url: this.apiPath,
33
+ method: 'DELETE',
34
+ data: {
35
+ dates,
36
+ users,
37
+ },
38
+ })
39
+ .then((res) => Promise.resolve(options?.rawResponse ? res : res.status), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
40
+ }
41
+ }
42
+ export { DaysOffService };
@@ -0,0 +1,10 @@
1
+ export * from './service.js';
2
+ export * from './accounts.service.js';
3
+ export * from './attendance.service.js';
4
+ export * from './leave-request.service.js';
5
+ export * from './leave-embargoes.service.js';
6
+ export * from './leave.service.js';
7
+ export * from './locations.service.js';
8
+ export * from './roles.service.js';
9
+ export * from './shifts.service.js';
10
+ export * from './users.service.js';
@@ -0,0 +1,10 @@
1
+ export * from './service.js';
2
+ export * from './accounts.service.js';
3
+ export * from './attendance.service.js';
4
+ export * from './leave-request.service.js';
5
+ export * from './leave-embargoes.service.js';
6
+ export * from './leave.service.js';
7
+ export * from './locations.service.js';
8
+ export * from './roles.service.js';
9
+ export * from './shifts.service.js';
10
+ export * from './users.service.js';
@@ -0,0 +1,38 @@
1
+ import { AxiosResponse } from 'axios';
2
+ import { ApiLeaveEmbargo } from '../interfaces/index.js';
3
+ import { Service, Options, RequirementsOf } from './index.js';
4
+ import { LeaveEmbargo } from '../models/leave-embargo.model.js';
5
+ import { UsersQueryParams } from '../interfaces/query-params/users-query-params.interface.js';
6
+ import { InternalQueryParams } from '../interfaces/query-params/internal-query-params.inteface.js';
7
+ declare type RequiredProps = 'start_date' | 'end_date' | 'users';
8
+ declare class LeaveEmbargoesService extends Service {
9
+ private apiPath;
10
+ constructor();
11
+ create(data: RequirementsOf<ApiLeaveEmbargo, RequiredProps>): Promise<LeaveEmbargo>;
12
+ create(data: RequirementsOf<ApiLeaveEmbargo, RequiredProps>, options: {
13
+ rawResponse: true;
14
+ params?: InternalQueryParams;
15
+ }): Promise<AxiosResponse<ApiLeaveEmbargo, any>>;
16
+ create(data: RequirementsOf<ApiLeaveEmbargo, RequiredProps>, options: Options<InternalQueryParams>): Promise<LeaveEmbargo>;
17
+ get(id: number): Promise<LeaveEmbargo>;
18
+ get(id: number, options: {
19
+ rawResponse: true;
20
+ params?: InternalQueryParams;
21
+ }): Promise<AxiosResponse<ApiLeaveEmbargo, any>>;
22
+ get(id: number, options: Options<InternalQueryParams>): Promise<LeaveEmbargo>;
23
+ list(options?: Options<UsersQueryParams & InternalQueryParams>): AsyncGenerator<LeaveEmbargo, void, unknown>;
24
+ listByPage(options?: Options<UsersQueryParams & InternalQueryParams>): AsyncGenerator<AxiosResponse<ApiLeaveEmbargo[], any>, any, unknown>;
25
+ update(id: number, data: Partial<ApiLeaveEmbargo>): Promise<LeaveEmbargo>;
26
+ update(id: number, data: Partial<ApiLeaveEmbargo>, options: {
27
+ rawResponse: true;
28
+ params?: InternalQueryParams;
29
+ }): Promise<AxiosResponse<ApiLeaveEmbargo, any>>;
30
+ update(id: number, data: Partial<ApiLeaveEmbargo>, options: Options<InternalQueryParams>): Promise<LeaveEmbargo>;
31
+ delete(id: number): Promise<number>;
32
+ delete(id: number, options: {
33
+ rawResponse: true;
34
+ params?: InternalQueryParams;
35
+ }): Promise<AxiosResponse<any, any>>;
36
+ delete(id: number, options: Options<InternalQueryParams>): Promise<number>;
37
+ }
38
+ export { LeaveEmbargoesService };
@@ -0,0 +1,36 @@
1
+ import { Service } from './index.js';
2
+ import { LeaveEmbargo } from '../models/leave-embargo.model.js';
3
+ import { ErrorResponse } from '../models/error-response.model.js';
4
+ class LeaveEmbargoesService extends Service {
5
+ constructor() {
6
+ super();
7
+ this.apiPath = '/leave_embargoes';
8
+ }
9
+ create(data, options) {
10
+ return super.fetch({ url: this.apiPath, data, method: 'POST' }).then((res) => Promise.resolve(options?.rawResponse ? res : new LeaveEmbargo(res.data)), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
11
+ }
12
+ get(id, options) {
13
+ return super.fetch({ url: `${this.apiPath}/${id}` }, options).then((res) => Promise.resolve(options?.rawResponse ? res : new LeaveEmbargo(res.data)), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
14
+ }
15
+ async *list(options) {
16
+ for await (const res of super.iterator({ url: this.apiPath }, options)) {
17
+ yield new LeaveEmbargo(res);
18
+ }
19
+ }
20
+ listByPage(options) {
21
+ return super.iterator({ url: this.apiPath }, options).byPage();
22
+ }
23
+ update(id, data, options) {
24
+ return super
25
+ .fetch({
26
+ url: `${this.apiPath}/${id}`,
27
+ data,
28
+ method: 'POST',
29
+ })
30
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new LeaveEmbargo(res.data)), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
31
+ }
32
+ delete(id, options) {
33
+ return super.fetch({ url: `${this.apiPath}/${id}`, method: 'DELETE' }).then((res) => Promise.resolve(options?.rawResponse ? res : res.status), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
34
+ }
35
+ }
36
+ export { LeaveEmbargoesService };
@@ -0,0 +1,37 @@
1
+ import { AxiosResponse } from 'axios';
2
+ import { ApiLeaveRequest } from '../interfaces/index.js';
3
+ import { Service, Options, RequirementsOf } from './index.js';
4
+ import { LeaveQueryParams } from '../interfaces/query-params/leave-query-params.interface.js';
5
+ import { InternalQueryParams } from '../interfaces/query-params/internal-query-params.inteface.js';
6
+ import { LeaveRequest } from '../models/leave-request.model.js';
7
+ declare type RequiredProps = 'start_date' | 'end_date' | 'type' | 'user';
8
+ declare class LeaveRequestService extends Service {
9
+ private apiPath;
10
+ create(data: RequirementsOf<ApiLeaveRequest, RequiredProps>): Promise<LeaveRequest>;
11
+ create(data: RequirementsOf<ApiLeaveRequest, RequiredProps>, options: {
12
+ rawResponse: true;
13
+ params?: InternalQueryParams;
14
+ }): Promise<AxiosResponse<ApiLeaveRequest, any>>;
15
+ create(data: RequirementsOf<ApiLeaveRequest, RequiredProps>, options: Options<InternalQueryParams>): Promise<LeaveRequest>;
16
+ get(id: number): Promise<LeaveRequest>;
17
+ get(id: number, options: {
18
+ rawResponse: true;
19
+ params?: InternalQueryParams;
20
+ }): Promise<AxiosResponse<ApiLeaveRequest, any>>;
21
+ get(id: number, options: Options<InternalQueryParams>): Promise<LeaveRequest>;
22
+ list(options?: Options<LeaveQueryParams & InternalQueryParams>): AsyncGenerator<LeaveRequest, void, unknown>;
23
+ listByPage(options?: Options<LeaveQueryParams & InternalQueryParams>): AsyncGenerator<AxiosResponse<ApiLeaveRequest[], any>, any, unknown>;
24
+ update(id: number, data: Partial<ApiLeaveRequest>): Promise<LeaveRequest>;
25
+ update(id: number, data: Partial<ApiLeaveRequest>, options: {
26
+ rawResponse: true;
27
+ params?: InternalQueryParams;
28
+ }): Promise<AxiosResponse<ApiLeaveRequest, any>>;
29
+ update(id: number, data: Partial<ApiLeaveRequest>, options: Options<InternalQueryParams>): Promise<LeaveRequest>;
30
+ delete(id: number): Promise<number>;
31
+ delete(id: number, options: {
32
+ rawResponse: true;
33
+ params?: InternalQueryParams;
34
+ }): Promise<AxiosResponse<ApiLeaveRequest, any>>;
35
+ delete(id: number, options: Options<InternalQueryParams>): Promise<number>;
36
+ }
37
+ export { LeaveRequestService };
@@ -0,0 +1,36 @@
1
+ import { Service } from './index.js';
2
+ import { ErrorResponse } from '../models/error-response.model.js';
3
+ import { LeaveRequest } from '../models/leave-request.model.js';
4
+ class LeaveRequestService extends Service {
5
+ constructor() {
6
+ super(...arguments);
7
+ this.apiPath = '/leave_requests';
8
+ }
9
+ create(data, options) {
10
+ return super.fetch({ url: this.apiPath, data, method: 'POST' }).then((res) => Promise.resolve(options?.rawResponse ? res : new LeaveRequest(res.data)), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
11
+ }
12
+ get(id, options) {
13
+ return super.fetch({ url: `${this.apiPath}/${id}` }, options).then((res) => Promise.resolve(options?.rawResponse ? res : new LeaveRequest(res.data)), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
14
+ }
15
+ async *list(options) {
16
+ for await (const res of super.iterator({ url: `${this.apiPath}` }, options)) {
17
+ yield new LeaveRequest(res);
18
+ }
19
+ }
20
+ listByPage(options) {
21
+ return super.iterator({ url: `${this.apiPath}` }, options).byPage();
22
+ }
23
+ update(id, data, options) {
24
+ return super
25
+ .fetch({
26
+ url: `${this.apiPath}/${id}`,
27
+ data,
28
+ method: 'POST',
29
+ })
30
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new LeaveRequest(res.data)), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
31
+ }
32
+ delete(id, options) {
33
+ return super.fetch({ url: `${this.apiPath}/${id}`, method: 'DELETE' }).then((res) => Promise.resolve(options?.rawResponse ? res : res.status), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
34
+ }
35
+ }
36
+ export { LeaveRequestService };