rotacloud 1.1.2 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/dist/cjs/interfaces/query-params/index.d.ts +0 -1
  2. package/dist/cjs/interfaces/query-params/index.js +0 -1
  3. package/dist/cjs/services/accounts.service.d.ts +26 -7
  4. package/dist/cjs/services/accounts.service.js +10 -20
  5. package/dist/cjs/services/attendance.service.d.ts +30 -11
  6. package/dist/cjs/services/attendance.service.js +16 -26
  7. package/dist/cjs/services/auth.service.js +1 -3
  8. package/dist/cjs/services/availability.service.d.ts +3 -3
  9. package/dist/cjs/services/availability.service.js +8 -18
  10. package/dist/cjs/services/daily-budgets.service.d.ts +19 -7
  11. package/dist/cjs/services/daily-budgets.service.js +12 -22
  12. package/dist/cjs/services/daily-revenue.service.d.ts +18 -6
  13. package/dist/cjs/services/daily-revenue.service.js +11 -21
  14. package/dist/cjs/services/day-notes.service.d.ts +27 -8
  15. package/dist/cjs/services/day-notes.service.js +15 -25
  16. package/dist/cjs/services/days-off.service.d.ts +17 -5
  17. package/dist/cjs/services/days-off.service.js +13 -23
  18. package/dist/cjs/services/groups.service.d.ts +27 -8
  19. package/dist/cjs/services/groups.service.js +12 -22
  20. package/dist/cjs/services/leave-embargoes.service.d.ts +27 -8
  21. package/dist/cjs/services/leave-embargoes.service.js +16 -26
  22. package/dist/cjs/services/leave-request.service.d.ts +27 -8
  23. package/dist/cjs/services/leave-request.service.js +15 -25
  24. package/dist/cjs/services/leave.service.d.ts +28 -10
  25. package/dist/cjs/services/leave.service.js +13 -46
  26. package/dist/cjs/services/locations.service.d.ts +27 -8
  27. package/dist/cjs/services/locations.service.js +16 -26
  28. package/dist/cjs/services/pins.service.d.ts +12 -5
  29. package/dist/cjs/services/pins.service.js +1 -1
  30. package/dist/cjs/services/roles.service.d.ts +27 -8
  31. package/dist/cjs/services/roles.service.js +16 -26
  32. package/dist/cjs/services/service.d.ts +12 -3
  33. package/dist/cjs/services/service.js +1 -2
  34. package/dist/cjs/services/settings.service.d.ts +1 -1
  35. package/dist/cjs/services/settings.service.js +1 -1
  36. package/dist/cjs/services/shifts.service.d.ts +30 -11
  37. package/dist/cjs/services/shifts.service.js +21 -31
  38. package/dist/cjs/services/terminals-active.service.d.ts +20 -8
  39. package/dist/cjs/services/terminals-active.service.js +16 -26
  40. package/dist/cjs/services/terminals.service.d.ts +27 -8
  41. package/dist/cjs/services/terminals.service.js +13 -23
  42. package/dist/cjs/services/time-zone.service.d.ts +2 -2
  43. package/dist/cjs/services/time-zone.service.js +10 -20
  44. package/dist/cjs/services/toil-accruals.service.d.ts +4 -4
  45. package/dist/cjs/services/toil-accruals.service.js +12 -22
  46. package/dist/cjs/services/toil-allowance.service.d.ts +3 -3
  47. package/dist/cjs/services/toil-allowance.service.js +9 -19
  48. package/dist/cjs/services/users-clock-in.service.d.ts +22 -10
  49. package/dist/cjs/services/users-clock-in.service.js +5 -5
  50. package/dist/cjs/services/users.service.d.ts +28 -9
  51. package/dist/cjs/services/users.service.js +16 -26
  52. package/dist/cjs/version.js +1 -1
  53. package/dist/mjs/interfaces/query-params/index.d.ts +0 -1
  54. package/dist/mjs/interfaces/query-params/index.js +0 -1
  55. package/dist/mjs/services/accounts.service.d.ts +26 -7
  56. package/dist/mjs/services/accounts.service.js +2 -4
  57. package/dist/mjs/services/attendance.service.d.ts +30 -11
  58. package/dist/mjs/services/attendance.service.js +8 -10
  59. package/dist/mjs/services/auth.service.js +1 -3
  60. package/dist/mjs/services/availability.service.d.ts +3 -3
  61. package/dist/mjs/services/availability.service.js +3 -5
  62. package/dist/mjs/services/daily-budgets.service.d.ts +19 -7
  63. package/dist/mjs/services/daily-budgets.service.js +4 -6
  64. package/dist/mjs/services/daily-revenue.service.d.ts +18 -6
  65. package/dist/mjs/services/daily-revenue.service.js +3 -5
  66. package/dist/mjs/services/day-notes.service.d.ts +27 -8
  67. package/dist/mjs/services/day-notes.service.js +7 -9
  68. package/dist/mjs/services/days-off.service.d.ts +17 -5
  69. package/dist/mjs/services/days-off.service.js +5 -7
  70. package/dist/mjs/services/groups.service.d.ts +27 -8
  71. package/dist/mjs/services/groups.service.js +4 -6
  72. package/dist/mjs/services/leave-embargoes.service.d.ts +27 -8
  73. package/dist/mjs/services/leave-embargoes.service.js +8 -10
  74. package/dist/mjs/services/leave-request.service.d.ts +27 -8
  75. package/dist/mjs/services/leave-request.service.js +7 -9
  76. package/dist/mjs/services/leave.service.d.ts +28 -10
  77. package/dist/mjs/services/leave.service.js +5 -12
  78. package/dist/mjs/services/locations.service.d.ts +27 -8
  79. package/dist/mjs/services/locations.service.js +8 -10
  80. package/dist/mjs/services/pins.service.d.ts +12 -5
  81. package/dist/mjs/services/pins.service.js +1 -1
  82. package/dist/mjs/services/roles.service.d.ts +27 -8
  83. package/dist/mjs/services/roles.service.js +8 -10
  84. package/dist/mjs/services/service.d.ts +12 -3
  85. package/dist/mjs/services/service.js +0 -2
  86. package/dist/mjs/services/settings.service.d.ts +1 -1
  87. package/dist/mjs/services/settings.service.js +1 -1
  88. package/dist/mjs/services/shifts.service.d.ts +30 -11
  89. package/dist/mjs/services/shifts.service.js +13 -15
  90. package/dist/mjs/services/terminals-active.service.d.ts +20 -8
  91. package/dist/mjs/services/terminals-active.service.js +8 -10
  92. package/dist/mjs/services/terminals.service.d.ts +27 -8
  93. package/dist/mjs/services/terminals.service.js +5 -7
  94. package/dist/mjs/services/time-zone.service.d.ts +2 -2
  95. package/dist/mjs/services/time-zone.service.js +2 -4
  96. package/dist/mjs/services/toil-accruals.service.d.ts +4 -4
  97. package/dist/mjs/services/toil-accruals.service.js +4 -6
  98. package/dist/mjs/services/toil-allowance.service.d.ts +3 -3
  99. package/dist/mjs/services/toil-allowance.service.js +1 -3
  100. package/dist/mjs/services/users-clock-in.service.d.ts +22 -10
  101. package/dist/mjs/services/users-clock-in.service.js +5 -5
  102. package/dist/mjs/services/users.service.d.ts +28 -9
  103. package/dist/mjs/services/users.service.js +8 -10
  104. package/dist/mjs/version.js +1 -1
  105. package/package.json +1 -1
  106. package/src/interfaces/query-params/index.ts +0 -1
  107. package/src/services/accounts.service.ts +30 -14
  108. package/src/services/attendance.service.ts +57 -28
  109. package/src/services/auth.service.ts +1 -3
  110. package/src/services/availability.service.ts +14 -13
  111. package/src/services/daily-budgets.service.ts +41 -20
  112. package/src/services/daily-revenue.service.ts +37 -19
  113. package/src/services/day-notes.service.ts +51 -25
  114. package/src/services/days-off.service.ts +46 -25
  115. package/src/services/groups.service.ts +40 -20
  116. package/src/services/leave-embargoes.service.ts +54 -25
  117. package/src/services/leave-request.service.ts +53 -24
  118. package/src/services/leave.service.ts +41 -27
  119. package/src/services/locations.service.ts +54 -25
  120. package/src/services/pins.service.ts +11 -6
  121. package/src/services/roles.service.ts +49 -25
  122. package/src/services/service.ts +35 -9
  123. package/src/services/settings.service.ts +2 -2
  124. package/src/services/shifts.service.ts +62 -36
  125. package/src/services/terminals-active.service.ts +36 -23
  126. package/src/services/terminals.service.ts +36 -18
  127. package/src/services/time-zone.service.ts +4 -6
  128. package/src/services/toil-accruals.service.ts +9 -11
  129. package/src/services/toil-allowance.service.ts +3 -5
  130. package/src/services/users-clock-in.service.ts +30 -16
  131. package/src/services/users.service.ts +49 -26
  132. package/src/version.ts +1 -1
  133. package/dist/cjs/interfaces/query-params/internal-query-params.interface.d.ts +0 -5
  134. package/dist/cjs/interfaces/query-params/internal-query-params.interface.js +0 -2
  135. package/dist/mjs/interfaces/query-params/internal-query-params.interface.d.ts +0 -5
  136. package/dist/mjs/interfaces/query-params/internal-query-params.interface.js +0 -1
  137. package/src/interfaces/query-params/internal-query-params.interface.ts +0 -5
@@ -1,43 +1,60 @@
1
1
  import { AxiosResponse } from 'axios';
2
2
  import { Attendance } from '../interfaces/index.js';
3
- import { Service, Options, RequirementsOf } from './index.js';
3
+ import { Service, Options, RequirementsOf, OptionsExtended } from './index.js';
4
4
 
5
5
  import { AttendanceQueryParams } from '../interfaces/query-params/attendance-query-params.interface.js';
6
6
 
7
7
  type RequiredProps = 'user' | 'in_time';
8
8
 
9
- export class AttendanceService extends Service {
9
+ export class AttendanceService extends Service<Attendance> {
10
10
  private apiPath = '/attendance';
11
11
 
12
12
  create(data: RequirementsOf<Attendance, RequiredProps>): Promise<Attendance>;
13
13
  create(
14
14
  data: RequirementsOf<Attendance, RequiredProps>,
15
15
  options: { rawResponse: true } & Options,
16
- ): Promise<AxiosResponse<Attendance, any>>;
16
+ ): Promise<AxiosResponse<Attendance>>;
17
17
  create(data: RequirementsOf<Attendance, RequiredProps>, options: Options): Promise<Attendance>;
18
18
  create(data: RequirementsOf<Attendance, RequiredProps>, options?: Options) {
19
19
  return super
20
- .fetch<Attendance>({ url: this.apiPath, data, method: 'POST' })
21
- .then((res) => Promise.resolve(options?.rawResponse ? res : res.data));
20
+ .fetch<Attendance>({ url: this.apiPath, data, method: 'POST' }, options)
21
+ .then((res) => (options?.rawResponse ? res : res.data));
22
22
  }
23
23
 
24
24
  get(id: number): Promise<Attendance>;
25
- get(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<Attendance, any>>;
26
- get(id: number, options: Options): Promise<Attendance>;
27
- get(id: number, options?: Options) {
25
+ get<F extends keyof Attendance>(
26
+ id: number,
27
+ options: { fields: F[]; rawResponse: true } & OptionsExtended<Attendance>,
28
+ ): Promise<AxiosResponse<Pick<Attendance, F>>>;
29
+ get<F extends keyof Attendance>(
30
+ id: number,
31
+ options: { fields: F[] } & OptionsExtended<Attendance>,
32
+ ): Promise<Pick<Attendance, F>>;
33
+ get(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<Attendance>>;
34
+ get(id: number, options?: OptionsExtended<Attendance>): Promise<Attendance>;
35
+ get(id: number, options?: OptionsExtended<Attendance>) {
28
36
  return super
29
37
  .fetch<Attendance>({ url: `${this.apiPath}/${id}` }, options)
30
- .then((res) => Promise.resolve(options?.rawResponse ? res : res.data));
38
+ .then((res) => (options?.rawResponse ? res : res.data));
31
39
  }
32
40
 
33
- async *list(query: AttendanceQueryParams, options?: Options) {
34
- for await (const res of super.iterator<Attendance>({ url: this.apiPath, params: query }, options)) {
35
- yield res;
36
- }
41
+ list(query: AttendanceQueryParams): AsyncGenerator<Attendance>;
42
+ list<F extends keyof Attendance>(
43
+ query: AttendanceQueryParams,
44
+ options: { fields: F[] } & OptionsExtended<Attendance>,
45
+ ): AsyncGenerator<Pick<Attendance, F>>;
46
+ list(query: AttendanceQueryParams, options?: OptionsExtended<Attendance>): AsyncGenerator<Attendance>;
47
+ async *list(query: AttendanceQueryParams, options?: OptionsExtended<Attendance>) {
48
+ yield* super.iterator({ url: this.apiPath, params: query }, options);
37
49
  }
38
50
 
39
- listAll(query: AttendanceQueryParams, options?: Options): Promise<Attendance[]>;
40
- async listAll(query: AttendanceQueryParams, options?: Options) {
51
+ listAll(query: AttendanceQueryParams): Promise<Attendance[]>;
52
+ listAll<F extends keyof Attendance>(
53
+ query: AttendanceQueryParams,
54
+ options: { fields: F[] } & OptionsExtended<Attendance>,
55
+ ): Promise<Pick<Attendance, F>[]>;
56
+ listAll(query: AttendanceQueryParams, options?: OptionsExtended<Attendance>): Promise<Attendance[]>;
57
+ async listAll(query: AttendanceQueryParams, options?: OptionsExtended<Attendance>) {
41
58
  const attendance = [] as Attendance[];
42
59
  for await (const atten of this.list(query, options)) {
43
60
  attendance.push(atten);
@@ -45,8 +62,17 @@ export class AttendanceService extends Service {
45
62
  return attendance;
46
63
  }
47
64
 
48
- listByPage(query: AttendanceQueryParams, options?: Options) {
49
- return super.iterator<Attendance>({ url: this.apiPath, params: query }, options).byPage();
65
+ listByPage(query: AttendanceQueryParams): AsyncGenerator<AxiosResponse<Attendance[]>>;
66
+ listByPage<F extends keyof Attendance>(
67
+ query: AttendanceQueryParams,
68
+ options: { fields: F[] } & OptionsExtended<Attendance>,
69
+ ): AsyncGenerator<AxiosResponse<Pick<Attendance, F>[]>>;
70
+ listByPage(
71
+ query: AttendanceQueryParams,
72
+ options?: OptionsExtended<Attendance>,
73
+ ): AsyncGenerator<AxiosResponse<Attendance[]>>;
74
+ listByPage(query: AttendanceQueryParams, options?: OptionsExtended<Attendance>) {
75
+ return super.iterator({ url: this.apiPath, params: query }, options).byPage();
50
76
  }
51
77
 
52
78
  update(id: number, data: Partial<Attendance>): Promise<Attendance>;
@@ -54,24 +80,27 @@ export class AttendanceService extends Service {
54
80
  id: number,
55
81
  data: Partial<Attendance>,
56
82
  options: { rawResponse: true } & Options,
57
- ): Promise<AxiosResponse<Attendance, any>>;
83
+ ): Promise<AxiosResponse<Attendance>>;
58
84
  update(id: number, data: Partial<Attendance>, options: Options): Promise<Attendance>;
59
85
  update(id: number, data: Partial<Attendance>, options?: Options) {
60
86
  return super
61
- .fetch<Attendance>({
62
- url: `${this.apiPath}/${id}`,
63
- data,
64
- method: 'POST',
65
- })
66
- .then((res) => Promise.resolve(options?.rawResponse ? res : res.data));
87
+ .fetch<Attendance>(
88
+ {
89
+ url: `${this.apiPath}/${id}`,
90
+ data,
91
+ method: 'POST',
92
+ },
93
+ options,
94
+ )
95
+ .then((res) => (options?.rawResponse ? res : res.data));
67
96
  }
68
97
 
69
98
  delete(id: number): Promise<number>;
70
- delete(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<Attendance, any>>;
71
- delete(id: number, options: Options): Promise<number>;
99
+ delete(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<void>>;
100
+ delete(id: number, options?: Options): Promise<number>;
72
101
  delete(id: number, options?: Options) {
73
102
  return super
74
- .fetch<Attendance>({ url: `${this.apiPath}/${id}`, method: 'DELETE' })
75
- .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
103
+ .fetch<void>({ url: `${this.apiPath}/${id}`, method: 'DELETE' }, options)
104
+ .then((res) => (options?.rawResponse ? res : res.status));
76
105
  }
77
106
  }
@@ -8,8 +8,6 @@ export class AuthService extends Service {
8
8
  get(options?: { rawResponse: true } & Options): Promise<AxiosResponse<Auth, any>>;
9
9
  get(options?: Options): Promise<Auth>;
10
10
  get(options?: Options) {
11
- return super
12
- .fetch<Auth>({ url: this.apiPath }, options)
13
- .then((res) => Promise.resolve(options?.rawResponse ? res : res.data));
11
+ return super.fetch<Auth>({ url: this.apiPath }, options).then((res) => (options?.rawResponse ? res : res.data));
14
12
  }
15
13
  }
@@ -4,7 +4,7 @@ import { Service, Options } from './index.js';
4
4
  import { AvailabilityQueryParams } from '../interfaces/query-params/availability-query-params.interface.js';
5
5
  import { Availability } from '../interfaces/availability.interface.js';
6
6
 
7
- export class AvailabilityService extends Service {
7
+ export class AvailabilityService extends Service<Availability> {
8
8
  private apiPath = '/availability';
9
9
 
10
10
  update(data: Availability): Promise<Availability>;
@@ -12,12 +12,15 @@ export class AvailabilityService extends Service {
12
12
  update(data: Availability, options?: Options): Promise<Availability | AxiosResponse<Availability>>;
13
13
  update(data: Availability, options?: Options) {
14
14
  return super
15
- .fetch<Availability>({
16
- url: this.apiPath,
17
- data,
18
- method: 'POST',
19
- })
20
- .then((res) => Promise.resolve(options?.rawResponse ? res : res.data));
15
+ .fetch<Availability>(
16
+ {
17
+ url: this.apiPath,
18
+ data,
19
+ method: 'POST',
20
+ },
21
+ options,
22
+ )
23
+ .then((res) => (options?.rawResponse ? res : res.data));
21
24
  }
22
25
 
23
26
  /** Alias of {@link AvailabilityService["update"]} */
@@ -45,13 +48,11 @@ export class AvailabilityService extends Service {
45
48
  );
46
49
  }
47
50
 
48
- async *list(query: AvailabilityQueryParams, options?: Options) {
49
- for await (const res of super.iterator<Availability>({ url: this.apiPath, params: query }, options)) {
50
- yield res;
51
- }
51
+ async *list(query?: AvailabilityQueryParams, options?: Options) {
52
+ yield* super.iterator({ url: this.apiPath, params: query }, options);
52
53
  }
53
54
 
54
- listByPage(query: AvailabilityQueryParams, options?: Options) {
55
- return super.iterator<Availability>({ url: this.apiPath, params: query }, options).byPage();
55
+ listByPage(query?: AvailabilityQueryParams, options?: Options) {
56
+ return super.iterator({ url: this.apiPath, params: query }, options).byPage();
56
57
  }
57
58
  }
@@ -1,20 +1,29 @@
1
1
  import { AxiosResponse } from 'axios';
2
2
  import { DailyBudgets } from '../interfaces/daily-budgets.interface.js';
3
- import { Service, Options } from './index.js';
3
+ import { Service, OptionsExtended } from './index.js';
4
4
 
5
5
  import { DailyBudgetsQueryParams } from '../interfaces/query-params/daily-budgets-query-params.interface.js';
6
6
 
7
- export class DailyBudgetsService extends Service {
7
+ export class DailyBudgetsService extends Service<DailyBudgets> {
8
8
  private apiPath = '/daily_budgets';
9
9
 
10
- async *list(query: DailyBudgetsQueryParams, options?: Options) {
11
- for await (const res of super.iterator<DailyBudgets>({ url: this.apiPath, params: query }, options)) {
12
- yield res;
13
- }
10
+ list(query: DailyBudgetsQueryParams): AsyncGenerator<DailyBudgets>;
11
+ list<F extends keyof DailyBudgets>(
12
+ query: DailyBudgetsQueryParams,
13
+ options: { fields: F[] } & OptionsExtended<DailyBudgets>,
14
+ ): AsyncGenerator<Pick<DailyBudgets, F>>;
15
+ list(query: DailyBudgetsQueryParams, options?: OptionsExtended<DailyBudgets>): AsyncGenerator<DailyBudgets>;
16
+ async *list(query: DailyBudgetsQueryParams, options?: OptionsExtended<DailyBudgets>) {
17
+ yield* super.iterator({ url: this.apiPath, params: query }, options);
14
18
  }
15
19
 
16
- listAll(query: DailyBudgetsQueryParams, options?: Options): Promise<DailyBudgets[]>;
17
- async listAll(query: DailyBudgetsQueryParams, options?: Options) {
20
+ listAll(query: DailyBudgetsQueryParams): Promise<DailyBudgets[]>;
21
+ listAll<F extends keyof DailyBudgets>(
22
+ query: DailyBudgetsQueryParams,
23
+ options: { fields: F[] } & OptionsExtended<DailyBudgets>,
24
+ ): Promise<Pick<DailyBudgets, F>[]>;
25
+ listAll(query: DailyBudgetsQueryParams, options?: OptionsExtended<DailyBudgets>): Promise<DailyBudgets[]>;
26
+ async listAll(query: DailyBudgetsQueryParams, options?: OptionsExtended<DailyBudgets>) {
18
27
  const attendance = [] as DailyBudgets[];
19
28
  for await (const atten of this.list(query, options)) {
20
29
  attendance.push(atten);
@@ -22,23 +31,35 @@ export class DailyBudgetsService extends Service {
22
31
  return attendance;
23
32
  }
24
33
 
25
- listByPage(query: DailyBudgetsQueryParams, options?: Options) {
26
- return super.iterator<DailyBudgets>({ url: this.apiPath, params: query }, options).byPage();
34
+ listByPage(query: DailyBudgetsQueryParams): AsyncGenerator<AxiosResponse<DailyBudgets[]>>;
35
+ listByPage<F extends keyof DailyBudgets>(
36
+ query: DailyBudgetsQueryParams,
37
+ options: { fields: F[] } & OptionsExtended<DailyBudgets>,
38
+ ): AsyncGenerator<AxiosResponse<Pick<DailyBudgets, F>[]>>;
39
+ listByPage(
40
+ query: DailyBudgetsQueryParams,
41
+ options?: OptionsExtended<DailyBudgets>,
42
+ ): AsyncGenerator<AxiosResponse<DailyBudgets[]>>;
43
+ listByPage(query: DailyBudgetsQueryParams, options?: OptionsExtended<DailyBudgets>) {
44
+ return super.iterator({ url: this.apiPath, params: query }, options).byPage();
27
45
  }
28
46
 
29
47
  update(data: Partial<DailyBudgets>[]): Promise<number>;
30
48
  update(
31
49
  data: Partial<DailyBudgets>[],
32
- options: { rawResponse: true } & Options,
33
- ): Promise<AxiosResponse<DailyBudgets, any>>;
34
- update(data: Partial<DailyBudgets>[], options: Options): Promise<number>;
35
- update(data: Partial<DailyBudgets>[], options?: Options) {
50
+ options: { rawResponse: true } & OptionsExtended<DailyBudgets>,
51
+ ): Promise<AxiosResponse<void>>;
52
+ update(data: Partial<DailyBudgets>[], options?: OptionsExtended<DailyBudgets>): Promise<number>;
53
+ update(data: Partial<DailyBudgets>[], options?: OptionsExtended<DailyBudgets>) {
36
54
  return super
37
- .fetch<DailyBudgets>({
38
- url: `${this.apiPath}`,
39
- data,
40
- method: 'POST',
41
- })
42
- .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
55
+ .fetch<void>(
56
+ {
57
+ url: this.apiPath,
58
+ data,
59
+ method: 'POST',
60
+ },
61
+ options,
62
+ )
63
+ .then((res) => (options?.rawResponse ? res : res.status));
43
64
  }
44
65
  }
@@ -1,20 +1,29 @@
1
1
  import { AxiosResponse } from 'axios';
2
2
  import { DailyRevenue } from '../interfaces/daily-revenue.interface.js';
3
- import { Service, Options } from './index.js';
3
+ import { Service, Options, OptionsExtended } from './index.js';
4
4
 
5
5
  import { DailyRevenueQueryParams } from '../interfaces/query-params/daily-revenue-query-params.interface.js';
6
6
 
7
- export class DailyRevenueService extends Service {
7
+ export class DailyRevenueService extends Service<DailyRevenue> {
8
8
  private apiPath = '/daily_revenue';
9
9
 
10
- async *list(query: DailyRevenueQueryParams, options?: Options) {
11
- for await (const res of super.iterator<DailyRevenue>({ url: this.apiPath, params: query }, options)) {
12
- yield res;
13
- }
10
+ list(query?: DailyRevenueQueryParams): AsyncGenerator<DailyRevenue>;
11
+ list<F extends keyof DailyRevenue>(
12
+ query: DailyRevenueQueryParams,
13
+ options: { fields: F[] } & OptionsExtended<DailyRevenue>,
14
+ ): AsyncGenerator<Pick<DailyRevenue, F>>;
15
+ list(query?: DailyRevenueQueryParams, options?: OptionsExtended<DailyRevenue>): AsyncGenerator<DailyRevenue>;
16
+ async *list(query?: DailyRevenueQueryParams, options?: OptionsExtended<DailyRevenue>) {
17
+ yield* super.iterator<DailyRevenue>({ url: this.apiPath, params: query }, options);
14
18
  }
15
19
 
16
- listAll(query: DailyRevenueQueryParams, options?: Options): Promise<DailyRevenue[]>;
17
- async listAll(query: DailyRevenueQueryParams, options?: Options) {
20
+ listAll(query?: DailyRevenueQueryParams): Promise<DailyRevenue[]>;
21
+ listAll<F extends keyof DailyRevenue>(
22
+ query: DailyRevenueQueryParams,
23
+ options: { fields: F[] } & OptionsExtended<DailyRevenue>,
24
+ ): Promise<Pick<DailyRevenue, F>[]>;
25
+ listAll(query?: DailyRevenueQueryParams, options?: OptionsExtended<DailyRevenue>): Promise<DailyRevenue[]>;
26
+ async listAll(query?: DailyRevenueQueryParams, options?: OptionsExtended<DailyRevenue>) {
18
27
  const attendance = [] as DailyRevenue[];
19
28
  for await (const atten of this.list(query, options)) {
20
29
  attendance.push(atten);
@@ -22,23 +31,32 @@ export class DailyRevenueService extends Service {
22
31
  return attendance;
23
32
  }
24
33
 
25
- listByPage(query: DailyRevenueQueryParams, options?: Options) {
34
+ listByPage(query?: DailyRevenueQueryParams): AsyncGenerator<AxiosResponse<DailyRevenue[]>>;
35
+ listByPage<F extends keyof DailyRevenue>(
36
+ query: DailyRevenueQueryParams,
37
+ options: { fields: F[] } & OptionsExtended<DailyRevenue>,
38
+ ): AsyncGenerator<AxiosResponse<Pick<DailyRevenue, F>[]>>;
39
+ listByPage(
40
+ query: DailyRevenueQueryParams,
41
+ options?: OptionsExtended<DailyRevenue>,
42
+ ): AsyncGenerator<AxiosResponse<DailyRevenue[]>>;
43
+ listByPage(query?: DailyRevenueQueryParams, options?: OptionsExtended<DailyRevenue>) {
26
44
  return super.iterator<DailyRevenue>({ url: this.apiPath, params: query }, options).byPage();
27
45
  }
28
46
 
29
47
  update(data: Partial<DailyRevenue>[]): Promise<number>;
30
- update(
31
- data: Partial<DailyRevenue>[],
32
- options: { rawResponse: true } & Options,
33
- ): Promise<AxiosResponse<DailyRevenue, any>>;
48
+ update(data: Partial<DailyRevenue>[], options: { rawResponse: true } & Options): Promise<AxiosResponse<void>>;
34
49
  update(data: Partial<DailyRevenue>[], options: Options): Promise<number>;
35
50
  update(data: Partial<DailyRevenue>[], options?: Options) {
36
51
  return super
37
- .fetch<DailyRevenue>({
38
- url: `${this.apiPath}`,
39
- data,
40
- method: 'POST',
41
- })
42
- .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
52
+ .fetch<void>(
53
+ {
54
+ url: `${this.apiPath}`,
55
+ data,
56
+ method: 'POST',
57
+ },
58
+ options,
59
+ )
60
+ .then((res) => (options?.rawResponse ? res : res.status));
43
61
  }
44
62
  }
@@ -1,10 +1,10 @@
1
1
  import { AxiosResponse } from 'axios';
2
2
  import { DayNote } from '../interfaces/index.js';
3
- import { Service, Options } from './index.js';
3
+ import { Service, Options, OptionsExtended } from './index.js';
4
4
 
5
5
  import { DayNotesQueryParams } from '../interfaces/query-params/day-notes-query-params.interface';
6
6
 
7
- export class DayNotesService extends Service {
7
+ export class DayNotesService extends Service<DayNote> {
8
8
  private apiPath = '/day_notes';
9
9
 
10
10
  create(data: DayNote): Promise<DayNote>;
@@ -12,27 +12,44 @@ export class DayNotesService extends Service {
12
12
  create(data: DayNote, options: Options): Promise<DayNote>;
13
13
  create(data: DayNote, options?: Options) {
14
14
  return super
15
- .fetch<DayNote>({ url: this.apiPath, data, method: 'POST' })
16
- .then((res) => Promise.resolve(options?.rawResponse ? res : res.data));
15
+ .fetch({ url: this.apiPath, data, method: 'POST' })
16
+ .then((res) => (options?.rawResponse ? res : res.data));
17
17
  }
18
18
 
19
19
  get(id: number): Promise<DayNote>;
20
- get(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<DayNote, any>>;
21
- get(id: number, options: Options): Promise<DayNote>;
22
- get(id: number, options?: Options) {
20
+ get<F extends keyof DayNote>(
21
+ id: number,
22
+ options: { fields: F[]; rawResponse: true } & OptionsExtended<DayNote>,
23
+ ): Promise<AxiosResponse<Pick<DayNote, F>>>;
24
+ get<F extends keyof DayNote>(
25
+ id: number,
26
+ options: { fields: F[] } & OptionsExtended<DayNote>,
27
+ ): Promise<Pick<DayNote, F>>;
28
+ get(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<DayNote>>;
29
+ get(id: number, options?: OptionsExtended<DayNote>): Promise<DayNote>;
30
+ get(id: number, options?: OptionsExtended<DayNote>) {
23
31
  return super
24
32
  .fetch<DayNote>({ url: `${this.apiPath}/${id}` }, options)
25
- .then((res) => Promise.resolve(options?.rawResponse ? res : res.data));
33
+ .then((res) => (options?.rawResponse ? res : res.data));
26
34
  }
27
35
 
28
- async *list(query: DayNotesQueryParams, options?: Options) {
29
- for await (const res of super.iterator<DayNote>({ url: this.apiPath, params: query }, options)) {
30
- yield res;
31
- }
36
+ list(query: DayNotesQueryParams): AsyncGenerator<DayNote>;
37
+ list<F extends keyof DayNote>(
38
+ query: DayNotesQueryParams,
39
+ options: { fields: F[] } & OptionsExtended<DayNote>,
40
+ ): AsyncGenerator<Pick<DayNote, F>>;
41
+ list(query: DayNotesQueryParams, options?: OptionsExtended<DayNote>): AsyncGenerator<DayNote>;
42
+ async *list(query: DayNotesQueryParams, options?: OptionsExtended<DayNote>) {
43
+ yield* super.iterator({ url: this.apiPath, params: query }, options);
32
44
  }
33
45
 
34
- listAll(query: DayNotesQueryParams, options?: Options): Promise<DayNote[]>;
35
- async listAll(query: DayNotesQueryParams, options?: Options) {
46
+ listAll(query: DayNotesQueryParams): Promise<DayNote[]>;
47
+ listAll<F extends keyof DayNote>(
48
+ query: DayNotesQueryParams,
49
+ options: { fields: F[] } & OptionsExtended<DayNote>,
50
+ ): Promise<Pick<DayNote, F>[]>;
51
+ listAll(query: DayNotesQueryParams, options?: OptionsExtended<DayNote>): Promise<DayNote[]>;
52
+ async listAll(query: DayNotesQueryParams, options?: OptionsExtended<DayNote>) {
36
53
  const dayNotes: DayNote[] = [];
37
54
  for await (const dayNote of this.list(query, options)) {
38
55
  dayNotes.push(dayNote);
@@ -40,8 +57,14 @@ export class DayNotesService extends Service {
40
57
  return dayNotes;
41
58
  }
42
59
 
43
- listByPage(query: DayNotesQueryParams, options?: Options) {
44
- return super.iterator<DayNote>({ url: this.apiPath, params: query }, options).byPage();
60
+ listByPage(query: DayNotesQueryParams): AsyncGenerator<AxiosResponse<DayNote[]>>;
61
+ listByPage<F extends keyof DayNote>(
62
+ query: DayNotesQueryParams,
63
+ options: { fields: F[] } & OptionsExtended<DayNote>,
64
+ ): AsyncGenerator<AxiosResponse<Pick<DayNote, F>[]>>;
65
+ listByPage(query: DayNotesQueryParams, options?: OptionsExtended<DayNote>): AsyncGenerator<AxiosResponse<DayNote[]>>;
66
+ listByPage(query: DayNotesQueryParams, options?: OptionsExtended<DayNote>) {
67
+ return super.iterator({ url: this.apiPath, params: query }, options).byPage();
45
68
  }
46
69
 
47
70
  update(id: number, data: Partial<DayNote>): Promise<DayNote>;
@@ -53,20 +76,23 @@ export class DayNotesService extends Service {
53
76
  update(id: number, data: Partial<DayNote>, options: Options): Promise<DayNote>;
54
77
  update(id: number, data: Partial<DayNote>, options?: Options) {
55
78
  return super
56
- .fetch<DayNote>({
57
- url: `${this.apiPath}/${id}`,
58
- data,
59
- method: 'POST',
60
- })
61
- .then((res) => Promise.resolve(options?.rawResponse ? res : res.data));
79
+ .fetch<DayNote>(
80
+ {
81
+ url: `${this.apiPath}/${id}`,
82
+ data,
83
+ method: 'POST',
84
+ },
85
+ options,
86
+ )
87
+ .then((res) => (options?.rawResponse ? res : res.data));
62
88
  }
63
89
 
64
90
  delete(id: number): Promise<number>;
65
- delete(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<any, any>>;
91
+ delete(id: number, options: { rawResponse: true } & Options): Promise<AxiosResponse<void>>;
66
92
  delete(id: number, options: Options): Promise<number>;
67
93
  delete(id: number, options?: Options) {
68
94
  return super
69
- .fetch<DayNote>({ url: `${this.apiPath}/${id}`, method: 'DELETE' })
70
- .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
95
+ .fetch<void>({ url: `${this.apiPath}/${id}`, method: 'DELETE' }, options)
96
+ .then((res) => (options?.rawResponse ? res : res.status));
71
97
  }
72
98
  }
@@ -1,6 +1,6 @@
1
1
  import { AxiosResponse } from 'axios';
2
2
  import { DaysOff } from '../interfaces/index.js';
3
- import { Service, Options } from './index.js';
3
+ import { Service, Options, OptionsExtended } from './index.js';
4
4
 
5
5
  import { DaysOffQueryParams } from '../interfaces/query-params/days-off-query-params.interface.js';
6
6
 
@@ -16,25 +16,37 @@ export class DaysOffService extends Service<DaysOff> {
16
16
  create(dates: string[], users: number[], options: Options): Promise<number>;
17
17
  create(dates: string[], users: number[], options?: Options) {
18
18
  return super
19
- .fetch({
20
- url: this.apiPath,
21
- data: {
22
- dates,
23
- users,
19
+ .fetch<DaysOff>(
20
+ {
21
+ url: this.apiPath,
22
+ data: {
23
+ dates,
24
+ users,
25
+ },
26
+ method: 'POST',
24
27
  },
25
- method: 'POST',
26
- })
27
- .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
28
+ options,
29
+ )
30
+ .then((res) => (options?.rawResponse ? res : res.status));
28
31
  }
29
32
 
30
- async *list(query: DaysOffQueryParams, options?: Options) {
31
- for await (const res of super.iterator({ url: this.apiPath, params: query }, options)) {
32
- yield res;
33
- }
33
+ list(query?: DaysOffQueryParams): AsyncGenerator<DaysOff>;
34
+ list<F extends keyof DaysOff>(
35
+ query: DaysOffQueryParams,
36
+ options: { fields: F[] } & OptionsExtended<DaysOff>,
37
+ ): AsyncGenerator<Pick<DaysOff, F>>;
38
+ list(query?: DaysOffQueryParams, options?: OptionsExtended<DaysOff>): AsyncGenerator<DaysOff>;
39
+ async *list(query?: DaysOffQueryParams, options?: OptionsExtended<DaysOff>) {
40
+ yield* super.iterator<DaysOff>({ url: this.apiPath, params: query }, options);
34
41
  }
35
42
 
36
- listAll(query: DaysOffQueryParams, options?: Options): Promise<DaysOff[]>;
37
- async listAll(query: DaysOffQueryParams, options?: Options) {
43
+ listAll(query?: DaysOffQueryParams): Promise<DaysOff[]>;
44
+ listAll<F extends keyof DaysOff>(
45
+ query: DaysOffQueryParams,
46
+ options: { fields: F[] } & OptionsExtended<DaysOff>,
47
+ ): Promise<Pick<DaysOff, F>[]>;
48
+ listAll(query?: DaysOffQueryParams, options?: OptionsExtended<DaysOff>): Promise<DaysOff[]>;
49
+ async listAll(query?: DaysOffQueryParams, options?: OptionsExtended<DaysOff>) {
38
50
  const daysOff = [] as DaysOff[];
39
51
  for await (const dayOff of this.list(query, options)) {
40
52
  daysOff.push(dayOff);
@@ -42,23 +54,32 @@ export class DaysOffService extends Service<DaysOff> {
42
54
  return daysOff;
43
55
  }
44
56
 
45
- listByPage(query: DaysOffQueryParams, options?: Options) {
57
+ listByPage(query?: DaysOffQueryParams): AsyncGenerator<AxiosResponse<DaysOff[]>>;
58
+ listByPage<F extends keyof DaysOff>(
59
+ query: DaysOffQueryParams,
60
+ options: { fields: F[] } & OptionsExtended<DaysOff>,
61
+ ): AsyncGenerator<AxiosResponse<Pick<DaysOff, F>[]>>;
62
+ listByPage(query?: DaysOffQueryParams, options?: OptionsExtended<DaysOff>): AsyncGenerator<AxiosResponse<DaysOff[]>>;
63
+ listByPage(query?: DaysOffQueryParams, options?: OptionsExtended<DaysOff>) {
46
64
  return super.iterator({ url: this.apiPath, params: query }, options).byPage();
47
65
  }
48
66
 
49
67
  delete(dates: string[], users: number[]): Promise<number>;
50
- delete(dates: string[], users: number[], options: { rawResponse: true } & Options): Promise<AxiosResponse<any, any>>;
68
+ delete(dates: string[], users: number[], options: { rawResponse: true } & Options): Promise<AxiosResponse<void>>;
51
69
  delete(dates: string[], users: number[], options: Options): Promise<number>;
52
70
  delete(dates: string[], users: number[], options?: Options) {
53
71
  return super
54
- .fetch({
55
- url: this.apiPath,
56
- method: 'DELETE',
57
- data: {
58
- dates,
59
- users,
72
+ .fetch<void>(
73
+ {
74
+ url: this.apiPath,
75
+ method: 'DELETE',
76
+ data: {
77
+ dates,
78
+ users,
79
+ },
60
80
  },
61
- })
62
- .then((res) => Promise.resolve(options?.rawResponse ? res : res.status));
81
+ options,
82
+ )
83
+ .then((res) => (options?.rawResponse ? res : res.status));
63
84
  }
64
85
  }