rotacloud 1.0.40 → 1.0.41

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 (77) hide show
  1. package/dist/cjs/models/SDKError.model.d.ts +11 -0
  2. package/dist/cjs/models/SDKError.model.js +15 -0
  3. package/dist/cjs/models/index.d.ts +1 -1
  4. package/dist/cjs/models/index.js +1 -1
  5. package/dist/cjs/services/accounts.service.js +3 -2
  6. package/dist/cjs/services/attendance.service.js +10 -5
  7. package/dist/cjs/services/auth.service.js +3 -2
  8. package/dist/cjs/services/availability.service.js +1 -2
  9. package/dist/cjs/services/daily-budgets.service.js +1 -2
  10. package/dist/cjs/services/daily-revenue.service.js +1 -2
  11. package/dist/cjs/services/day-notes.service.js +10 -5
  12. package/dist/cjs/services/days-off.service.js +2 -3
  13. package/dist/cjs/services/groups.service.js +10 -5
  14. package/dist/cjs/services/leave-embargoes.service.js +10 -5
  15. package/dist/cjs/services/leave-request.service.js +10 -5
  16. package/dist/cjs/services/leave.service.js +10 -5
  17. package/dist/cjs/services/locations.service.js +10 -5
  18. package/dist/cjs/services/roles.service.js +10 -5
  19. package/dist/cjs/services/service.d.ts +2 -0
  20. package/dist/cjs/services/service.js +23 -1
  21. package/dist/cjs/services/settings.service.js +3 -2
  22. package/dist/cjs/services/shifts.service.d.ts +3 -3
  23. package/dist/cjs/services/shifts.service.js +21 -9
  24. package/dist/cjs/services/users.service.js +10 -5
  25. package/dist/cjs/version.js +1 -1
  26. package/dist/mjs/models/SDKError.model.d.ts +11 -0
  27. package/dist/mjs/models/SDKError.model.js +10 -0
  28. package/dist/mjs/models/index.d.ts +1 -1
  29. package/dist/mjs/models/index.js +1 -1
  30. package/dist/mjs/services/accounts.service.js +3 -2
  31. package/dist/mjs/services/attendance.service.js +10 -5
  32. package/dist/mjs/services/auth.service.js +3 -2
  33. package/dist/mjs/services/availability.service.js +1 -2
  34. package/dist/mjs/services/daily-budgets.service.js +1 -2
  35. package/dist/mjs/services/daily-revenue.service.js +1 -2
  36. package/dist/mjs/services/day-notes.service.js +10 -5
  37. package/dist/mjs/services/days-off.service.js +2 -3
  38. package/dist/mjs/services/groups.service.js +10 -5
  39. package/dist/mjs/services/leave-embargoes.service.js +10 -5
  40. package/dist/mjs/services/leave-request.service.js +10 -5
  41. package/dist/mjs/services/leave.service.js +10 -5
  42. package/dist/mjs/services/locations.service.js +10 -5
  43. package/dist/mjs/services/roles.service.js +10 -5
  44. package/dist/mjs/services/service.d.ts +2 -0
  45. package/dist/mjs/services/service.js +22 -1
  46. package/dist/mjs/services/settings.service.js +3 -2
  47. package/dist/mjs/services/shifts.service.d.ts +3 -3
  48. package/dist/mjs/services/shifts.service.js +21 -9
  49. package/dist/mjs/services/users.service.js +10 -5
  50. package/dist/mjs/version.js +1 -1
  51. package/package.json +1 -1
  52. package/src/models/SDKError.model.ts +20 -0
  53. package/src/models/index.ts +1 -1
  54. package/src/services/accounts.service.ts +3 -5
  55. package/src/services/attendance.service.ts +10 -17
  56. package/src/services/auth.service.ts +3 -5
  57. package/src/services/availability.service.ts +1 -5
  58. package/src/services/daily-budgets.service.ts +1 -5
  59. package/src/services/daily-revenue.service.ts +1 -5
  60. package/src/services/day-notes.service.ts +10 -18
  61. package/src/services/days-off.service.ts +2 -10
  62. package/src/services/groups.service.ts +10 -18
  63. package/src/services/leave-embargoes.service.ts +10 -17
  64. package/src/services/leave-request.service.ts +10 -17
  65. package/src/services/leave.service.ts +11 -17
  66. package/src/services/locations.service.ts +11 -17
  67. package/src/services/roles.service.ts +11 -17
  68. package/src/services/service.ts +29 -2
  69. package/src/services/settings.service.ts +4 -5
  70. package/src/services/shifts.service.ts +28 -34
  71. package/src/services/users.service.ts +11 -17
  72. package/src/version.ts +1 -1
  73. package/dist/cjs/models/error-response.model.d.ts +0 -8
  74. package/dist/cjs/models/error-response.model.js +0 -13
  75. package/dist/mjs/models/error-response.model.d.ts +0 -8
  76. package/dist/mjs/models/error-response.model.js +0 -8
  77. package/src/models/error-response.model.ts +0 -14
@@ -24,11 +24,11 @@ export declare class ShiftsService extends Service {
24
24
  rawResponse: true;
25
25
  } & Options): Promise<AxiosResponse<ApiShift, any>>;
26
26
  update(id: number, data: Partial<ApiShift>, options: Options): Promise<Shift>;
27
- delete(id: number): Promise<number>;
28
- delete(id: number, options: {
27
+ delete(ids: number | number[]): Promise<number>;
28
+ delete(ids: number | number[], options: {
29
29
  rawResponse: true;
30
30
  } & Options): Promise<AxiosResponse<any, any>>;
31
- delete(id: number, options: Options): Promise<number>;
31
+ delete(ids: number | number[], options: Options): Promise<number>;
32
32
  acknowledge(data: number[]): Promise<number>;
33
33
  acknowledge(data: number[], options: {
34
34
  rawResponse: true;
@@ -1,16 +1,19 @@
1
1
  import { Service } from './index.js';
2
2
  import { Shift } from '../models/shift.model.js';
3
- import { ErrorResponse } from '../models/error-response.model.js';
4
3
  export class ShiftsService extends Service {
5
4
  constructor() {
6
5
  super(...arguments);
7
6
  this.apiPath = '/shifts';
8
7
  }
9
8
  create(data, options) {
10
- return super.fetch({ url: this.apiPath, data, method: 'POST' }).then((res) => Promise.resolve(options?.rawResponse ? res : new Shift(res.data)), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
9
+ return super
10
+ .fetch({ url: this.apiPath, data, method: 'POST' })
11
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new Shift(res.data)));
11
12
  }
12
13
  get(id, options) {
13
- return super.fetch({ url: `${this.apiPath}/${id}` }, options).then((res) => Promise.resolve(options?.rawResponse ? res : new Shift(res.data)), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
14
+ return super
15
+ .fetch({ url: `${this.apiPath}/${id}` }, options)
16
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new Shift(res.data)));
14
17
  }
15
18
  async *list(query, options) {
16
19
  for await (const res of super.iterator({ url: this.apiPath, params: query }, options)) {
@@ -34,18 +37,27 @@ export class ShiftsService extends Service {
34
37
  data,
35
38
  method: 'POST',
36
39
  })
37
- .then((res) => Promise.resolve(options?.rawResponse ? res : new Shift(res.data)), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
40
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new Shift(res.data)));
38
41
  }
39
- delete(id, options) {
40
- 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)));
42
+ delete(ids, options) {
43
+ const params = typeof ids !== 'number'
44
+ ? { url: this.apiPath, data: ids, method: 'DELETE' }
45
+ : { url: `${this.apiPath}/${ids}`, method: 'DELETE' };
46
+ return super.fetch(params).then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
41
47
  }
42
48
  acknowledge(data, options) {
43
- return super.fetch({ url: '/shifts_acknowledged', data, method: 'POST' }).then((res) => Promise.resolve(options?.rawResponse ? res : res.status), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
49
+ return super
50
+ .fetch({ url: '/shifts_acknowledged', data, method: 'POST' })
51
+ .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
44
52
  }
45
53
  publish(data, options) {
46
- return super.fetch({ url: '/shifts_published', data, method: 'POST' }).then((res) => Promise.resolve(options?.rawResponse ? res : res.status), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
54
+ return super
55
+ .fetch({ url: '/shifts_published', data, method: 'POST' })
56
+ .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
47
57
  }
48
58
  unpublish(data, options) {
49
- return super.fetch({ url: '/shifts_published', data, method: 'DELETE' }).then((res) => Promise.resolve(options?.rawResponse ? res : res.status), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
59
+ return super
60
+ .fetch({ url: '/shifts_published', data, method: 'DELETE' })
61
+ .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
50
62
  }
51
63
  }
@@ -1,16 +1,19 @@
1
1
  import { Service } from './index.js';
2
2
  import { User } from '../models/user.model.js';
3
- import { ErrorResponse } from '../models/error-response.model.js';
4
3
  class UsersService extends Service {
5
4
  constructor() {
6
5
  super(...arguments);
7
6
  this.apiPath = '/users';
8
7
  }
9
8
  create(data, options) {
10
- return super.fetch({ url: this.apiPath, data, method: 'POST' }).then((res) => Promise.resolve(options?.rawResponse ? res : new User(res.data)), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
9
+ return super
10
+ .fetch({ url: this.apiPath, data, method: 'POST' })
11
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new User(res.data)));
11
12
  }
12
13
  get(id, options) {
13
- return super.fetch({ url: `${this.apiPath}/${id}` }, options).then((res) => Promise.resolve(options?.rawResponse ? res : new User(res.data)), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
14
+ return super
15
+ .fetch({ url: `${this.apiPath}/${id}` }, options)
16
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new User(res.data)));
14
17
  }
15
18
  async *list(query, options) {
16
19
  for await (const res of super.iterator({ url: this.apiPath, params: query }, options)) {
@@ -34,10 +37,12 @@ class UsersService extends Service {
34
37
  data,
35
38
  method: 'POST',
36
39
  })
37
- .then((res) => Promise.resolve(options?.rawResponse ? res : new User(res.data)), (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err)));
40
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new User(res.data)));
38
41
  }
39
42
  delete(id, options) {
40
- 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)));
43
+ return super
44
+ .fetch({ url: `${this.apiPath}/${id}`, method: 'DELETE' })
45
+ .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
41
46
  }
42
47
  }
43
48
  export { UsersService };
@@ -1 +1 @@
1
- export const Version = { version: '1.0.40' };
1
+ export const Version = { version: '1.0.41' };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rotacloud",
3
- "version": "1.0.40",
3
+ "version": "1.0.41",
4
4
  "description": "The RotaCloud SDK for the RotaCloud API",
5
5
  "engines": {
6
6
  "node": ">=14.17.0"
@@ -0,0 +1,20 @@
1
+ export interface SDKErrorConfig {
2
+ message?: string;
3
+ code?: number;
4
+ data?: unknown;
5
+ }
6
+ export class SDKError extends Error {
7
+ readonly code?: number;
8
+ readonly data?: unknown;
9
+ override name = this.constructor.name;
10
+
11
+ constructor(errorConfig: SDKErrorConfig) {
12
+ super(errorConfig.message);
13
+
14
+ Error.captureStackTrace?.(this, SDKError);
15
+ // optional chaining needed as is v8 specific https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#static_methods
16
+
17
+ this.data = errorConfig.data;
18
+ this.code = errorConfig.code;
19
+ }
20
+ }
@@ -9,7 +9,7 @@ export * from './day-note.model.js';
9
9
  export * from './days-off-pattern.model.js';
10
10
  export * from './days-off.model.js';
11
11
  export * from './document.model.js';
12
- export * from './error-response.model.js';
12
+ export * from './SDKError.model.js';
13
13
  export * from './group.model.js';
14
14
  export * from './holiday-allowance-custom.model.js';
15
15
  export * from './holiday-allowance.model.js';
@@ -3,7 +3,6 @@ import { Account } from '../models/account.model.js';
3
3
  import { Service, Options } from './index.js';
4
4
 
5
5
  import { ApiAccount } from '../interfaces/index.js';
6
- import { ErrorResponse } from '../models/error-response.model.js';
7
6
 
8
7
  class AccountsService extends Service {
9
8
  private apiPath = '/accounts';
@@ -12,10 +11,9 @@ class AccountsService extends Service {
12
11
  get(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<ApiAccount, any>>;
13
12
  get(id: number, options: Options): Promise<Account>;
14
13
  get(id: number, options?: Options) {
15
- return super.fetch<ApiAccount>({ url: `${this.apiPath}/${id}` }, options).then(
16
- (res) => Promise.resolve(options?.rawResponse ? res : new Account(res.data)),
17
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
18
- );
14
+ return super
15
+ .fetch<ApiAccount>({ url: `${this.apiPath}/${id}` }, options)
16
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new Account(res.data)));
19
17
  }
20
18
 
21
19
  async *list(options?: Options) {
@@ -3,7 +3,6 @@ import { ApiAttendance } from '../interfaces/index.js';
3
3
  import { Service, Options, RequirementsOf } from './index.js';
4
4
 
5
5
  import { Attendance } from '../models/attendance.model.js';
6
- import { ErrorResponse } from '../models/error-response.model.js';
7
6
  import { AttendanceQueryParams } from '../interfaces/query-params/attendance-query-params.interface.js';
8
7
 
9
8
  type RequiredProps = 'user' | 'in_time';
@@ -18,20 +17,18 @@ export class AttendanceService extends Service {
18
17
  ): Promise<AxiosResponse<ApiAttendance, any>>;
19
18
  create(data: RequirementsOf<ApiAttendance, RequiredProps>, options: Options): Promise<ApiAttendance>;
20
19
  create(data: RequirementsOf<ApiAttendance, RequiredProps>, options?: Options) {
21
- return super.fetch<ApiAttendance>({ url: this.apiPath, data, method: 'POST' }).then(
22
- (res) => Promise.resolve(options?.rawResponse ? res : new Attendance(res.data)),
23
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
24
- );
20
+ return super
21
+ .fetch<ApiAttendance>({ url: this.apiPath, data, method: 'POST' })
22
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new Attendance(res.data)));
25
23
  }
26
24
 
27
25
  get(id: number): Promise<Attendance>;
28
26
  get(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<ApiAttendance, any>>;
29
27
  get(id: number, options: Options): Promise<Attendance>;
30
28
  get(id: number, options?: Options) {
31
- return super.fetch<ApiAttendance>({ url: `${this.apiPath}/${id}` }, options).then(
32
- (res) => Promise.resolve(options?.rawResponse ? res : new Attendance(res.data)),
33
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
34
- );
29
+ return super.fetch<ApiAttendance>({ url: `${this.apiPath}/${id}` }, options).then((res) => {
30
+ return Promise.resolve(options?.rawResponse ? res : new Attendance(res.data));
31
+ });
35
32
  }
36
33
 
37
34
  async *list(query: AttendanceQueryParams, options?: Options) {
@@ -67,19 +64,15 @@ export class AttendanceService extends Service {
67
64
  data,
68
65
  method: 'POST',
69
66
  })
70
- .then(
71
- (res) => Promise.resolve(options?.rawResponse ? res : new Attendance(res.data)),
72
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
73
- );
67
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new Attendance(res.data)));
74
68
  }
75
69
 
76
70
  delete(id: number): Promise<number>;
77
71
  delete(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<ApiAttendance, any>>;
78
72
  delete(id: number, options: Options): Promise<number>;
79
73
  delete(id: number, options?: Options) {
80
- return super.fetch<ApiAttendance>({ url: `${this.apiPath}/${id}`, method: 'DELETE' }).then(
81
- (res) => Promise.resolve(options?.rawResponse ? res : res.status),
82
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
83
- );
74
+ return super
75
+ .fetch<ApiAttendance>({ url: `${this.apiPath}/${id}`, method: 'DELETE' })
76
+ .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
84
77
  }
85
78
  }
@@ -3,7 +3,6 @@ import { ApiAuth } from '../interfaces/index.js';
3
3
  import { Service, Options } from './index.js';
4
4
 
5
5
  import { Auth } from '../models/auth.model.js';
6
- import { ErrorResponse } from '../models/error-response.model.js';
7
6
 
8
7
  export class AuthService extends Service {
9
8
  private apiPath = '/auth';
@@ -11,9 +10,8 @@ export class AuthService extends Service {
11
10
  get(options?: { rawResponse: true } & Options): Promise<AxiosResponse<ApiAuth, any>>;
12
11
  get(options?: Options): Promise<Auth>;
13
12
  get(options?: Options) {
14
- return super.fetch<ApiAuth>({ url: this.apiPath }, options).then(
15
- (res) => Promise.resolve(options?.rawResponse ? res : new Auth(res.data)),
16
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
17
- );
13
+ return super
14
+ .fetch<ApiAuth>({ url: this.apiPath }, options)
15
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new Auth(res.data)));
18
16
  }
19
17
  }
@@ -4,7 +4,6 @@ import { Service, Options } from './index.js';
4
4
  import { AvailabilityQueryParams } from '../interfaces/query-params/availability-query-params.interface.js';
5
5
  import { Availability } from '../models/availability.model.js';
6
6
  import { ApiAvailability } from '../interfaces/availability.interface.js';
7
- import { ErrorResponse } from '../models/error-response.model.js';
8
7
 
9
8
  export class AvailabilityService extends Service {
10
9
  private apiPath = '/availability';
@@ -19,10 +18,7 @@ export class AvailabilityService extends Service {
19
18
  data,
20
19
  method: 'POST',
21
20
  })
22
- .then(
23
- (res) => Promise.resolve(options?.rawResponse ? res : new Availability(res.data)),
24
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
25
- );
21
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new Availability(res.data)));
26
22
  }
27
23
 
28
24
  /** Alias of {@link AvailabilityService["update"]} */
@@ -3,7 +3,6 @@ import { ApiDailyBudgets } from '../interfaces/daily-budgets.interface.js';
3
3
  import { Service, Options } from './index.js';
4
4
 
5
5
  import { DailyBudgets } from '../models/daily-budgets.model.js';
6
- import { ErrorResponse } from '../models/error-response.model.js';
7
6
  import { DailyBudgetsQueryParams } from '../interfaces/query-params/daily-budgets-query-params.interface.js';
8
7
 
9
8
  export class DailyBudgetsService extends Service {
@@ -41,9 +40,6 @@ export class DailyBudgetsService extends Service {
41
40
  data,
42
41
  method: 'POST',
43
42
  })
44
- .then(
45
- (res) => Promise.resolve(options?.rawResponse ? res : res.status),
46
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
47
- );
43
+ .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
48
44
  }
49
45
  }
@@ -3,7 +3,6 @@ import { ApiDailyRevenue } from '../interfaces/daily-revenue.interface.js';
3
3
  import { Service, Options } from './index.js';
4
4
 
5
5
  import { DailyRevenue } from '../models/daily-revenue.model.js';
6
- import { ErrorResponse } from '../models/error-response.model.js';
7
6
  import { DailyRevenueQueryParams } from '../interfaces/query-params/daily-revenue-query-params.interface.js';
8
7
 
9
8
  export class DailyRevenueService extends Service {
@@ -41,9 +40,6 @@ export class DailyRevenueService extends Service {
41
40
  data,
42
41
  method: 'POST',
43
42
  })
44
- .then(
45
- (res) => Promise.resolve(options?.rawResponse ? res : res.status),
46
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
47
- );
43
+ .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
48
44
  }
49
45
  }
@@ -2,8 +2,6 @@ import { AxiosResponse } from 'axios';
2
2
  import { ApiDayNote } from '../interfaces/index.js';
3
3
  import { Service, Options } from './index.js';
4
4
 
5
- import { ErrorResponse } from '../models/error-response.model.js';
6
-
7
5
  import { DayNote } from '../models/day-note.model.js';
8
6
  import { DayNotesQueryParams } from '../interfaces/query-params/day-notes-query-params.interface';
9
7
 
@@ -14,20 +12,18 @@ export class DayNotesService extends Service {
14
12
  create(data: ApiDayNote, options: { rawResponse: true } & Options): Promise<AxiosResponse<ApiDayNote, any>>;
15
13
  create(data: ApiDayNote, options: Options): Promise<DayNote>;
16
14
  create(data: ApiDayNote, options?: Options) {
17
- return super.fetch<ApiDayNote>({ url: this.apiPath, data, method: 'POST' }).then(
18
- (res) => Promise.resolve(options?.rawResponse ? res : new DayNote(res.data)),
19
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
20
- );
15
+ return super
16
+ .fetch<ApiDayNote>({ url: this.apiPath, data, method: 'POST' })
17
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new DayNote(res.data)));
21
18
  }
22
19
 
23
20
  get(id: number): Promise<DayNote>;
24
21
  get(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<ApiDayNote, any>>;
25
22
  get(id: number, options: Options): Promise<DayNote>;
26
23
  get(id: number, options?: Options) {
27
- return super.fetch<ApiDayNote>({ url: `${this.apiPath}/${id}` }, options).then(
28
- (res) => Promise.resolve(options?.rawResponse ? res : new DayNote(res.data)),
29
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
30
- );
24
+ return super
25
+ .fetch<ApiDayNote>({ url: `${this.apiPath}/${id}` }, options)
26
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new DayNote(res.data)));
31
27
  }
32
28
 
33
29
  async *list(query: DayNotesQueryParams, options?: Options) {
@@ -63,19 +59,15 @@ export class DayNotesService extends Service {
63
59
  data,
64
60
  method: 'POST',
65
61
  })
66
- .then(
67
- (res) => Promise.resolve(options?.rawResponse ? res : new DayNote(res.data)),
68
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
69
- );
62
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new DayNote(res.data)));
70
63
  }
71
64
 
72
65
  delete(id: number): Promise<number>;
73
66
  delete(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<any, any>>;
74
67
  delete(id: number, options: Options): Promise<number>;
75
68
  delete(id: number, options?: Options) {
76
- return super.fetch<ApiDayNote>({ url: `${this.apiPath}/${id}`, method: 'DELETE' }).then(
77
- (res) => Promise.resolve(options?.rawResponse ? res : res.status),
78
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
79
- );
69
+ return super
70
+ .fetch<ApiDayNote>({ url: `${this.apiPath}/${id}`, method: 'DELETE' })
71
+ .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
80
72
  }
81
73
  }
@@ -2,8 +2,6 @@ import { AxiosResponse } from 'axios';
2
2
  import { ApiDaysOff } from '../interfaces/index.js';
3
3
  import { Service, Options } from './index.js';
4
4
 
5
- import { ErrorResponse } from '../models/error-response.model.js';
6
-
7
5
  import { DaysOff } from '../models/days-off.model.js';
8
6
  import { DaysOffQueryParams } from '../interfaces/query-params/days-off-query-params.interface.js';
9
7
 
@@ -27,10 +25,7 @@ export class DaysOffService extends Service<ApiDaysOff> {
27
25
  },
28
26
  method: 'POST',
29
27
  })
30
- .then(
31
- (res) => Promise.resolve(options?.rawResponse ? res : res.status),
32
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
33
- );
28
+ .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
34
29
  }
35
30
 
36
31
  async *list(query: DaysOffQueryParams, options?: Options) {
@@ -65,9 +60,6 @@ export class DaysOffService extends Service<ApiDaysOff> {
65
60
  users,
66
61
  },
67
62
  })
68
- .then(
69
- (res) => Promise.resolve(options?.rawResponse ? res : res.status),
70
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
71
- );
63
+ .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
72
64
  }
73
65
  }
@@ -2,8 +2,6 @@ import { AxiosResponse } from 'axios';
2
2
  import { ApiGroup } from '../interfaces/index.js';
3
3
  import { Service, Options, RequirementsOf } from './index.js';
4
4
 
5
- import { ErrorResponse } from '../models/error-response.model.js';
6
-
7
5
  import { Group } from '../models/group.model.js';
8
6
  import { GroupsQueryParams } from '../interfaces/query-params/groups-query-params.interface.js';
9
7
 
@@ -19,20 +17,18 @@ export class GroupsService extends Service {
19
17
  ): Promise<AxiosResponse<ApiGroup, any>>;
20
18
  create(data: RequirementsOf<ApiGroup, RequiredProps>, options: Options): Promise<Group>;
21
19
  create(data: RequirementsOf<ApiGroup, RequiredProps>, options?: Options) {
22
- return super.fetch<ApiGroup>({ url: this.apiPath, data, method: 'POST' }).then(
23
- (res) => Promise.resolve(options?.rawResponse ? res : new Group(res.data)),
24
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
25
- );
20
+ return super
21
+ .fetch<ApiGroup>({ url: this.apiPath, data, method: 'POST' })
22
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new Group(res.data)));
26
23
  }
27
24
 
28
25
  get(id: number): Promise<Group>;
29
26
  get(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<ApiGroup, any>>;
30
27
  get(id: number, options: Options): Promise<Group>;
31
28
  get(id: number, options?: Options) {
32
- return super.fetch<ApiGroup>({ url: `${this.apiPath}/${id}` }, options).then(
33
- (res) => Promise.resolve(options?.rawResponse ? res : new Group(res.data)),
34
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
35
- );
29
+ return super
30
+ .fetch<ApiGroup>({ url: `${this.apiPath}/${id}` }, options)
31
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new Group(res.data)));
36
32
  }
37
33
 
38
34
  async *list(query?: GroupsQueryParams, options?: Options) {
@@ -68,19 +64,15 @@ export class GroupsService extends Service {
68
64
  data,
69
65
  method: 'POST',
70
66
  })
71
- .then(
72
- (res) => Promise.resolve(options?.rawResponse ? res : new Group(res.data)),
73
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
74
- );
67
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new Group(res.data)));
75
68
  }
76
69
 
77
70
  delete(id: number): Promise<number>;
78
71
  delete(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<any, any>>;
79
72
  delete(id: number, options: Options): Promise<number>;
80
73
  delete(id: number, options?: Options) {
81
- return super.fetch<ApiGroup>({ url: `${this.apiPath}/${id}`, method: 'DELETE' }).then(
82
- (res) => Promise.resolve(options?.rawResponse ? res : res.status),
83
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
84
- );
74
+ return super
75
+ .fetch<ApiGroup>({ url: `${this.apiPath}/${id}`, method: 'DELETE' })
76
+ .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
85
77
  }
86
78
  }
@@ -3,7 +3,6 @@ import { ApiLeaveEmbargo } from '../interfaces/index.js';
3
3
  import { Service, Options, RequirementsOf } from './index.js';
4
4
 
5
5
  import { LeaveEmbargo } from '../models/leave-embargo.model.js';
6
- import { ErrorResponse } from '../models/error-response.model.js';
7
6
  import { LeaveEmbargoesQueryParams } from '../rotacloud.js';
8
7
 
9
8
  type RequiredProps = 'start_date' | 'end_date' | 'users';
@@ -18,20 +17,18 @@ export class LeaveEmbargoesService extends Service {
18
17
  ): Promise<AxiosResponse<ApiLeaveEmbargo, any>>;
19
18
  create(data: RequirementsOf<ApiLeaveEmbargo, RequiredProps>, options: Options): Promise<LeaveEmbargo>;
20
19
  create(data: RequirementsOf<ApiLeaveEmbargo, RequiredProps>, options?: Options) {
21
- return super.fetch<ApiLeaveEmbargo>({ url: this.apiPath, data, method: 'POST' }).then(
22
- (res) => Promise.resolve(options?.rawResponse ? res : new LeaveEmbargo(res.data)),
23
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
24
- );
20
+ return super
21
+ .fetch<ApiLeaveEmbargo>({ url: this.apiPath, data, method: 'POST' })
22
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new LeaveEmbargo(res.data)));
25
23
  }
26
24
 
27
25
  get(id: number): Promise<LeaveEmbargo>;
28
26
  get(id: number, options: { rawResponse: true }): Promise<AxiosResponse<ApiLeaveEmbargo, any>>;
29
27
  get(id: number, options: Options): Promise<LeaveEmbargo>;
30
28
  get(id: number, options?: Options) {
31
- return super.fetch<ApiLeaveEmbargo>({ url: `${this.apiPath}/${id}` }, options).then(
32
- (res) => Promise.resolve(options?.rawResponse ? res : new LeaveEmbargo(res.data)),
33
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
34
- );
29
+ return super
30
+ .fetch<ApiLeaveEmbargo>({ url: `${this.apiPath}/${id}` }, options)
31
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new LeaveEmbargo(res.data)));
35
32
  }
36
33
 
37
34
  async *list(query: LeaveEmbargoesQueryParams, options?: Options) {
@@ -67,19 +64,15 @@ export class LeaveEmbargoesService extends Service {
67
64
  data,
68
65
  method: 'POST',
69
66
  })
70
- .then(
71
- (res) => Promise.resolve(options?.rawResponse ? res : new LeaveEmbargo(res.data)),
72
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
73
- );
67
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new LeaveEmbargo(res.data)));
74
68
  }
75
69
 
76
70
  delete(id: number): Promise<number>;
77
71
  delete(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<any, any>>;
78
72
  delete(id: number, options: Options): Promise<number>;
79
73
  delete(id: number, options?: Options) {
80
- return super.fetch<ApiLeaveEmbargo>({ url: `${this.apiPath}/${id}`, method: 'DELETE' }).then(
81
- (res) => Promise.resolve(options?.rawResponse ? res : res.status),
82
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
83
- );
74
+ return super
75
+ .fetch<ApiLeaveEmbargo>({ url: `${this.apiPath}/${id}`, method: 'DELETE' })
76
+ .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
84
77
  }
85
78
  }
@@ -2,7 +2,6 @@ import { AxiosResponse } from 'axios';
2
2
  import { ApiLeaveRequest } from '../interfaces/index.js';
3
3
  import { Service, Options, RequirementsOf } from './index.js';
4
4
 
5
- import { ErrorResponse } from '../models/error-response.model.js';
6
5
  import { LeaveRequestsQueryParams } from '../interfaces/query-params/leave-requests-query-params.interface.js';
7
6
 
8
7
  import { LeaveRequest } from '../models/leave-request.model.js';
@@ -19,20 +18,18 @@ export class LeaveRequestService extends Service {
19
18
  ): Promise<AxiosResponse<ApiLeaveRequest, any>>;
20
19
  create(data: RequirementsOf<ApiLeaveRequest, RequiredProps>, options: Options): Promise<LeaveRequest>;
21
20
  create(data: RequirementsOf<ApiLeaveRequest, RequiredProps>, options?: Options) {
22
- return super.fetch<ApiLeaveRequest>({ url: this.apiPath, data, method: 'POST' }).then(
23
- (res) => Promise.resolve(options?.rawResponse ? res : new LeaveRequest(res.data)),
24
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
25
- );
21
+ return super
22
+ .fetch<ApiLeaveRequest>({ url: this.apiPath, data, method: 'POST' })
23
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new LeaveRequest(res.data)));
26
24
  }
27
25
 
28
26
  get(id: number): Promise<LeaveRequest>;
29
27
  get(id: number, options: { rawResponse: true }): Promise<AxiosResponse<ApiLeaveRequest, any>>;
30
28
  get(id: number, options: Options): Promise<LeaveRequest>;
31
29
  get(id: number, options?: Options) {
32
- return super.fetch<ApiLeaveRequest>({ url: `${this.apiPath}/${id}` }, options).then(
33
- (res) => Promise.resolve(options?.rawResponse ? res : new LeaveRequest(res.data)),
34
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
35
- );
30
+ return super
31
+ .fetch<ApiLeaveRequest>({ url: `${this.apiPath}/${id}` }, options)
32
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new LeaveRequest(res.data)));
36
33
  }
37
34
 
38
35
  async *list(query?: LeaveRequestsQueryParams, options?: Options) {
@@ -68,19 +65,15 @@ export class LeaveRequestService extends Service {
68
65
  data,
69
66
  method: 'POST',
70
67
  })
71
- .then(
72
- (res) => Promise.resolve(options?.rawResponse ? res : new LeaveRequest(res.data)),
73
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
74
- );
68
+ .then((res) => Promise.resolve(options?.rawResponse ? res : new LeaveRequest(res.data)));
75
69
  }
76
70
 
77
71
  delete(id: number): Promise<number>;
78
72
  delete(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<ApiLeaveRequest, any>>;
79
73
  delete(id: number, options: Options): Promise<number>;
80
74
  delete(id: number, options?: Options) {
81
- return super.fetch<ApiLeaveRequest>({ url: `${this.apiPath}/${id}`, method: 'DELETE' }).then(
82
- (res) => Promise.resolve(options?.rawResponse ? res : res.status),
83
- (err) => Promise.reject(options?.rawResponse ? err : new ErrorResponse(err))
84
- );
75
+ return super
76
+ .fetch<ApiLeaveRequest>({ url: `${this.apiPath}/${id}`, method: 'DELETE' })
77
+ .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
85
78
  }
86
79
  }