recal-sdk 0.3.2 → 1.0.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.
- package/README.md +24 -792
- package/dist/client/client/client.gen.d.ts +3 -0
- package/dist/client/client/client.gen.d.ts.map +1 -0
- package/dist/client/client/client.gen.js +205 -0
- package/dist/client/client/client.gen.js.map +1 -0
- package/dist/client/client/index.d.ts +9 -0
- package/dist/client/client/index.d.ts.map +1 -0
- package/dist/client/client/index.js +7 -0
- package/dist/client/client/index.js.map +1 -0
- package/dist/client/client/types.gen.d.ts +125 -0
- package/dist/client/client/types.gen.d.ts.map +1 -0
- package/dist/client/client/types.gen.js +3 -0
- package/dist/client/client/types.gen.js.map +1 -0
- package/dist/client/client/utils.gen.d.ts +34 -0
- package/dist/client/client/utils.gen.d.ts.map +1 -0
- package/dist/client/client/utils.gen.js +232 -0
- package/dist/client/client/utils.gen.js.map +1 -0
- package/dist/client/client.gen.d.ts +13 -0
- package/dist/client/client.gen.d.ts.map +1 -0
- package/dist/client/client.gen.js +6 -0
- package/dist/client/client.gen.js.map +1 -0
- package/dist/client/core/auth.gen.d.ts +19 -0
- package/dist/client/core/auth.gen.d.ts.map +1 -0
- package/dist/client/core/auth.gen.js +15 -0
- package/dist/client/core/auth.gen.js.map +1 -0
- package/dist/client/core/bodySerializer.gen.d.ts +26 -0
- package/dist/client/core/bodySerializer.gen.d.ts.map +1 -0
- package/dist/client/core/bodySerializer.gen.js +58 -0
- package/dist/client/core/bodySerializer.gen.js.map +1 -0
- package/dist/client/core/params.gen.d.ts +34 -0
- package/dist/client/core/params.gen.d.ts.map +1 -0
- package/dist/client/core/params.gen.js +89 -0
- package/dist/client/core/params.gen.js.map +1 -0
- package/dist/client/core/pathSerializer.gen.d.ts +34 -0
- package/dist/client/core/pathSerializer.gen.d.ts.map +1 -0
- package/dist/client/core/pathSerializer.gen.js +115 -0
- package/dist/client/core/pathSerializer.gen.js.map +1 -0
- package/dist/client/core/queryKeySerializer.gen.d.ts +19 -0
- package/dist/client/core/queryKeySerializer.gen.d.ts.map +1 -0
- package/dist/client/core/queryKeySerializer.gen.js +100 -0
- package/dist/client/core/queryKeySerializer.gen.js.map +1 -0
- package/dist/client/core/serverSentEvents.gen.d.ts +72 -0
- package/dist/client/core/serverSentEvents.gen.d.ts.map +1 -0
- package/dist/client/core/serverSentEvents.gen.js +136 -0
- package/dist/client/core/serverSentEvents.gen.js.map +1 -0
- package/dist/client/core/types.gen.d.ts +79 -0
- package/dist/client/core/types.gen.d.ts.map +1 -0
- package/dist/client/core/types.gen.js +3 -0
- package/dist/client/core/types.gen.js.map +1 -0
- package/dist/client/core/utils.gen.d.ts +20 -0
- package/dist/client/core/utils.gen.d.ts.map +1 -0
- package/dist/client/core/utils.gen.js +88 -0
- package/dist/client/core/utils.gen.js.map +1 -0
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +3 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/sdk.gen.d.ts +170 -0
- package/dist/client/sdk.gen.d.ts.map +1 -0
- package/dist/client/sdk.gen.js +884 -0
- package/dist/client/sdk.gen.js.map +1 -0
- package/dist/client/transformers.gen.d.ts +31 -0
- package/dist/client/transformers.gen.d.ts.map +1 -0
- package/dist/client/transformers.gen.js +263 -0
- package/dist/client/transformers.gen.js.map +1 -0
- package/dist/client/types.gen.d.ts +1765 -0
- package/dist/client/types.gen.d.ts.map +1 -0
- package/dist/client/types.gen.js +3 -0
- package/dist/client/types.gen.js.map +1 -0
- package/dist/client/zod.gen.d.ts +1457 -0
- package/dist/client/zod.gen.d.ts.map +1 -0
- package/dist/client/zod.gen.js +1214 -0
- package/dist/client/zod.gen.js.map +1 -0
- package/dist/index.d.ts +5 -33
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -55
- package/dist/index.js.map +1 -1
- package/dist/recal.d.ts +64 -0
- package/dist/recal.d.ts.map +1 -0
- package/dist/recal.js +81 -0
- package/dist/recal.js.map +1 -0
- package/dist/services/calendar.service.d.ts +55 -167
- package/dist/services/calendar.service.d.ts.map +1 -1
- package/dist/services/calendar.service.js +68 -301
- package/dist/services/calendar.service.js.map +1 -1
- package/dist/services/events.service.d.ts +167 -0
- package/dist/services/events.service.d.ts.map +1 -0
- package/dist/services/events.service.js +215 -0
- package/dist/services/events.service.js.map +1 -0
- package/dist/services/oauth.service.d.ts +123 -60
- package/dist/services/oauth.service.d.ts.map +1 -1
- package/dist/services/oauth.service.js +166 -142
- package/dist/services/oauth.service.js.map +1 -1
- package/dist/services/organizations.service.d.ts +137 -36
- package/dist/services/organizations.service.d.ts.map +1 -1
- package/dist/services/organizations.service.js +164 -90
- package/dist/services/organizations.service.js.map +1 -1
- package/dist/services/scheduling.service.d.ts +121 -58
- package/dist/services/scheduling.service.d.ts.map +1 -1
- package/dist/services/scheduling.service.js +98 -140
- package/dist/services/scheduling.service.js.map +1 -1
- package/dist/services/users.service.d.ts +87 -27
- package/dist/services/users.service.d.ts.map +1 -1
- package/dist/services/users.service.js +94 -69
- package/dist/services/users.service.js.map +1 -1
- package/dist/types.d.ts +68 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/response.d.ts +33 -0
- package/dist/utils/response.d.ts.map +1 -0
- package/dist/utils/response.js +54 -0
- package/dist/utils/response.js.map +1 -0
- package/package.json +5 -2
- package/dist/entities/organization.d.ts +0 -21
- package/dist/entities/organization.d.ts.map +0 -1
- package/dist/entities/organization.js +0 -32
- package/dist/entities/organization.js.map +0 -1
- package/dist/entities/user.d.ts +0 -23
- package/dist/entities/user.d.ts.map +0 -1
- package/dist/entities/user.js +0 -45
- package/dist/entities/user.js.map +0 -1
- package/dist/errors.d.ts +0 -22
- package/dist/errors.d.ts.map +0 -1
- package/dist/errors.js +0 -36
- package/dist/errors.js.map +0 -1
- package/dist/typebox/calendar.tb.d.ts +0 -113
- package/dist/typebox/calendar.tb.d.ts.map +0 -1
- package/dist/typebox/calendar.tb.js +0 -92
- package/dist/typebox/calendar.tb.js.map +0 -1
- package/dist/typebox/oauth.tb.d.ts +0 -14
- package/dist/typebox/oauth.tb.d.ts.map +0 -1
- package/dist/typebox/oauth.tb.js +0 -16
- package/dist/typebox/oauth.tb.js.map +0 -1
- package/dist/typebox/organization.stripped.tb.d.ts +0 -6
- package/dist/typebox/organization.stripped.tb.d.ts.map +0 -1
- package/dist/typebox/organization.stripped.tb.js +0 -7
- package/dist/typebox/organization.stripped.tb.js.map +0 -1
- package/dist/typebox/organization.tb.d.ts +0 -10
- package/dist/typebox/organization.tb.d.ts.map +0 -1
- package/dist/typebox/organization.tb.js +0 -8
- package/dist/typebox/organization.tb.js.map +0 -1
- package/dist/typebox/scheduling.tb.d.ts +0 -107
- package/dist/typebox/scheduling.tb.d.ts.map +0 -1
- package/dist/typebox/scheduling.tb.js +0 -105
- package/dist/typebox/scheduling.tb.js.map +0 -1
- package/dist/typebox/timeString.tb.d.ts +0 -3
- package/dist/typebox/timeString.tb.d.ts.map +0 -1
- package/dist/typebox/timeString.tb.js +0 -7
- package/dist/typebox/timeString.tb.js.map +0 -1
- package/dist/typebox/user.stripped.tb.d.ts +0 -5
- package/dist/typebox/user.stripped.tb.d.ts.map +0 -1
- package/dist/typebox/user.stripped.tb.js +0 -6
- package/dist/typebox/user.stripped.tb.js.map +0 -1
- package/dist/typebox/user.tb.d.ts +0 -19
- package/dist/typebox/user.tb.d.ts.map +0 -1
- package/dist/typebox/user.tb.js +0 -10
- package/dist/typebox/user.tb.js.map +0 -1
- package/dist/types/calendar.types.d.ts +0 -124
- package/dist/types/calendar.types.d.ts.map +0 -1
- package/dist/types/calendar.types.js +0 -27
- package/dist/types/calendar.types.js.map +0 -1
- package/dist/types/internal.types.d.ts +0 -7
- package/dist/types/internal.types.d.ts.map +0 -1
- package/dist/types/internal.types.js +0 -2
- package/dist/types/internal.types.js.map +0 -1
- package/dist/types/oauth.types.d.ts +0 -22
- package/dist/types/oauth.types.d.ts.map +0 -1
- package/dist/types/oauth.types.js +0 -2
- package/dist/types/oauth.types.js.map +0 -1
- package/dist/types/organization.types.d.ts +0 -18
- package/dist/types/organization.types.d.ts.map +0 -1
- package/dist/types/organization.types.js +0 -2
- package/dist/types/organization.types.js.map +0 -1
- package/dist/types/scheduling.types.d.ts +0 -50
- package/dist/types/scheduling.types.d.ts.map +0 -1
- package/dist/types/scheduling.types.js +0 -2
- package/dist/types/scheduling.types.js.map +0 -1
- package/dist/types/user.types.d.ts +0 -11
- package/dist/types/user.types.d.ts.map +0 -1
- package/dist/types/user.types.js +0 -2
- package/dist/types/user.types.js.map +0 -1
- package/dist/utils/fetch.helper.d.ts +0 -62
- package/dist/utils/fetch.helper.d.ts.map +0 -1
- package/dist/utils/fetch.helper.js +0 -116
- package/dist/utils/fetch.helper.js.map +0 -1
- package/dist/utils/fetchErrorHandler.d.ts +0 -22
- package/dist/utils/fetchErrorHandler.d.ts.map +0 -1
- package/dist/utils/fetchErrorHandler.js +0 -35
- package/dist/utils/fetchErrorHandler.js.map +0 -1
- package/dist/utils/includes.helper.d.ts +0 -4
- package/dist/utils/includes.helper.d.ts.map +0 -1
- package/dist/utils/includes.helper.js +0 -10
- package/dist/utils/includes.helper.js.map +0 -1
- package/dist/utils/omit.d.ts +0 -2
- package/dist/utils/omit.d.ts.map +0 -1
- package/dist/utils/omit.js +0 -4
- package/dist/utils/omit.js.map +0 -1
|
@@ -1,154 +1,112 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import * as sdk from '../client/sdk.gen';
|
|
2
|
+
import { unwrapResponse } from '../utils/response';
|
|
3
|
+
/**
|
|
4
|
+
* Scheduling Service
|
|
5
|
+
*
|
|
6
|
+
* Provides methods for finding available time slots
|
|
7
|
+
*/
|
|
5
8
|
export class SchedulingService {
|
|
6
|
-
|
|
7
|
-
constructor(
|
|
8
|
-
this.
|
|
9
|
+
client;
|
|
10
|
+
constructor(client) {
|
|
11
|
+
this.client = client;
|
|
9
12
|
}
|
|
10
13
|
/**
|
|
11
|
-
* Get available time slots
|
|
12
|
-
*
|
|
13
|
-
* @param
|
|
14
|
-
* @param
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
return this.fetchHelper
|
|
27
|
-
.get(`/v1/users/${userId}/scheduling`, {
|
|
28
|
-
schema: userSchedulingResponseSchema,
|
|
29
|
-
searchParams: {
|
|
30
|
-
...omit(options, ['timeZone']),
|
|
31
|
-
startDate,
|
|
32
|
-
endDate,
|
|
33
|
-
},
|
|
34
|
-
headers: options.timeZone ? { 'x-timezone': options.timeZone } : undefined,
|
|
35
|
-
})
|
|
36
|
-
.catch(errorHandler([
|
|
37
|
-
{
|
|
38
|
-
code: 404,
|
|
39
|
-
error: new OAuthConnectionNotFoundError(userId, Array.isArray(options.provider) ? options.provider.join(',') : options.provider || 'unknown'),
|
|
40
|
-
errorInclFilter: 'User has no connected calendars',
|
|
41
|
-
},
|
|
42
|
-
{ code: 404, error: new UserNotFoundError(userId) },
|
|
43
|
-
]));
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Get available time slots based on busy data with advanced parameters
|
|
47
|
-
* @param userId The ID of the user
|
|
48
|
-
* @param schedules Array of schedule rules defining availability windows
|
|
49
|
-
* @param startDate The start date for availability search
|
|
50
|
-
* @param endDate The end date for availability search
|
|
51
|
-
* @param options Advanced scheduling options (all fields optional):
|
|
52
|
-
* - provider: Calendar provider(s) to check (optional)
|
|
53
|
-
* - padding: Minutes of padding between slots (optional)
|
|
54
|
-
* - slotDuration: Duration of each slot in minutes (optional)
|
|
55
|
-
* - timeZone: Time zone for the request (optional)
|
|
56
|
-
* - maxOverlaps: Maximum number of overlaps allowed (optional)
|
|
57
|
-
* @returns Available time slots with advanced scheduling options
|
|
14
|
+
* Get available time slots for a user (basic parameters)
|
|
15
|
+
*
|
|
16
|
+
* @param userId - The user ID
|
|
17
|
+
* @param options - Scheduling options
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const slots = await recal.scheduling.getSlots('user-123', {
|
|
22
|
+
* start: '2024-01-15T00:00:00Z',
|
|
23
|
+
* end: '2024-01-19T23:59:59Z',
|
|
24
|
+
* slotDuration: '30',
|
|
25
|
+
* padding: '15',
|
|
26
|
+
* provider: 'google'
|
|
27
|
+
* })
|
|
28
|
+
* ```
|
|
58
29
|
*/
|
|
59
|
-
async
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
endDate,
|
|
67
|
-
},
|
|
68
|
-
body: { schedules },
|
|
69
|
-
headers: options.timeZone ? { 'x-timezone': options.timeZone } : undefined,
|
|
70
|
-
})
|
|
71
|
-
.catch(errorHandler([
|
|
72
|
-
{
|
|
73
|
-
code: 404,
|
|
74
|
-
error: new OAuthConnectionNotFoundError(userId, Array.isArray(options.provider) ? options.provider.join(',') : options.provider || 'unknown'),
|
|
75
|
-
errorInclFilter: 'User has no connected calendars',
|
|
76
|
-
},
|
|
77
|
-
{ code: 404, error: new UserNotFoundError(userId) },
|
|
78
|
-
]));
|
|
30
|
+
async getSlots(userId, options) {
|
|
31
|
+
const response = await sdk.getV1UsersUserIdScheduling({
|
|
32
|
+
path: { userId },
|
|
33
|
+
query: options,
|
|
34
|
+
client: this.client,
|
|
35
|
+
});
|
|
36
|
+
return unwrapResponse(response);
|
|
79
37
|
}
|
|
80
38
|
/**
|
|
39
|
+
* Get available time slots for a user (advanced with custom schedules)
|
|
40
|
+
*
|
|
41
|
+
* @param userId - The user ID
|
|
42
|
+
* @param options - Query scheduling options
|
|
43
|
+
* @param body - Custom schedules
|
|
81
44
|
*
|
|
82
|
-
* @
|
|
83
|
-
*
|
|
84
|
-
*
|
|
85
|
-
* -
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* const slots = await recal.scheduling.getAdvancedSlots(
|
|
48
|
+
* 'user-123',
|
|
49
|
+
* {
|
|
50
|
+
* start: '2024-01-15T00:00:00Z',
|
|
51
|
+
* end: '2024-01-19T23:59:59Z',
|
|
52
|
+
* slotDuration: '60',
|
|
53
|
+
* padding: '10'
|
|
54
|
+
* },
|
|
55
|
+
* {
|
|
56
|
+
* schedules: [
|
|
57
|
+
* {
|
|
58
|
+
* days: ['monday', 'wednesday', 'friday'],
|
|
59
|
+
* start: '09:00',
|
|
60
|
+
* end: '17:00'
|
|
61
|
+
* }
|
|
62
|
+
* ]
|
|
63
|
+
* }
|
|
64
|
+
* )
|
|
65
|
+
* ```
|
|
92
66
|
*/
|
|
93
|
-
async
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
body
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
...omit(options, ['timeZone', 'users']),
|
|
102
|
-
startDate,
|
|
103
|
-
endDate,
|
|
104
|
-
},
|
|
105
|
-
headers: options.timeZone ? { 'x-timezone': options.timeZone } : undefined,
|
|
106
|
-
})
|
|
107
|
-
.catch(errorHandler([]));
|
|
67
|
+
async getAdvancedSlots(userId, options, body) {
|
|
68
|
+
const response = await sdk.postV1UsersUserIdScheduling({
|
|
69
|
+
path: { userId },
|
|
70
|
+
query: options,
|
|
71
|
+
body,
|
|
72
|
+
client: this.client,
|
|
73
|
+
});
|
|
74
|
+
return unwrapResponse(response);
|
|
108
75
|
}
|
|
109
76
|
/**
|
|
110
|
-
* Get available time slots
|
|
111
|
-
*
|
|
112
|
-
* @param
|
|
113
|
-
* @param
|
|
114
|
-
*
|
|
115
|
-
*
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
*
|
|
119
|
-
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
122
|
-
*
|
|
77
|
+
* Get available time slots for multiple users
|
|
78
|
+
*
|
|
79
|
+
* @param options - Query scheduling options
|
|
80
|
+
* @param users - Array of users with optional schedules
|
|
81
|
+
*
|
|
82
|
+
* @example
|
|
83
|
+
* ```typescript
|
|
84
|
+
* const slots = await recal.scheduling.getMultiUserSlots(
|
|
85
|
+
* {
|
|
86
|
+
* start: '2024-01-15T00:00:00Z',
|
|
87
|
+
* end: '2024-01-19T23:59:59Z',
|
|
88
|
+
* slotDuration: '60',
|
|
89
|
+
* padding: '10'
|
|
90
|
+
* },
|
|
91
|
+
* {
|
|
92
|
+
* users: [
|
|
93
|
+
* {
|
|
94
|
+
* id: 'user-1',
|
|
95
|
+
* schedules: [{ days: ['monday'], start: '09:00', end: '17:00' }]
|
|
96
|
+
* },
|
|
97
|
+
* { id: 'user-2' }
|
|
98
|
+
* ]
|
|
99
|
+
* }
|
|
100
|
+
* )
|
|
101
|
+
* ```
|
|
123
102
|
*/
|
|
124
|
-
async
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
endDate,
|
|
132
|
-
},
|
|
133
|
-
headers: options.timeZone ? { 'x-timezone': options.timeZone } : undefined,
|
|
134
|
-
})
|
|
135
|
-
.catch(errorHandler([
|
|
136
|
-
{
|
|
137
|
-
code: 400,
|
|
138
|
-
errorInclFilter: 'User has no connected calendars',
|
|
139
|
-
error: new OAuthConnectionNotFoundError('organization', Array.isArray(options.provider) ? options.provider.join(',') : options.provider || 'unknown'),
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
code: 404,
|
|
143
|
-
errorInclFilter: 'Organization not found',
|
|
144
|
-
error: new OrganizationNotFoundError(orgSlug),
|
|
145
|
-
},
|
|
146
|
-
{
|
|
147
|
-
code: 404,
|
|
148
|
-
errorInclFilter: 'No users found in this organization',
|
|
149
|
-
error: new UserNotFoundError('organization'),
|
|
150
|
-
},
|
|
151
|
-
]));
|
|
103
|
+
async getMultiUserSlots(options, body) {
|
|
104
|
+
const response = await sdk.postV1UsersScheduling({
|
|
105
|
+
query: options,
|
|
106
|
+
body,
|
|
107
|
+
client: this.client,
|
|
108
|
+
});
|
|
109
|
+
return unwrapResponse(response);
|
|
152
110
|
}
|
|
153
111
|
}
|
|
154
112
|
//# sourceMappingURL=scheduling.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduling.service.js","sourceRoot":"","sources":["../../src/services/scheduling.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scheduling.service.js","sourceRoot":"","sources":["../../src/services/scheduling.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAA;AAMxC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD;;;;GAIG;AACH,MAAM,OAAO,iBAAiB;IACN;IAApB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEtC;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,OAAgD;QAC3E,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,0BAA0B,CAAC;YAClD,IAAI,EAAE,EAAE,MAAM,EAAE;YAChB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAA;QACF,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,KAAK,CAAC,gBAAgB,CAClB,MAAc,EACd,OAAiD,EACjD,IAA8C;QAE9C,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,2BAA2B,CAAC;YACnD,IAAI,EAAE,EAAE,MAAM,EAAE;YAChB,KAAK,EAAE,OAAO;YACd,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAA;QACF,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACH,KAAK,CAAC,iBAAiB,CAAC,OAA2C,EAAE,IAAwC;QACzG,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,qBAAqB,CAAC;YAC7C,KAAK,EAAE,OAAO;YACd,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAA;QACF,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;CACJ"}
|
|
@@ -1,46 +1,106 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import type { Client } from '../client/client';
|
|
2
|
+
import type { GetV1UsersUserIdData } from '../client/types.gen';
|
|
3
|
+
/**
|
|
4
|
+
* Users Service
|
|
5
|
+
*
|
|
6
|
+
* Provides methods for managing users
|
|
7
|
+
*/
|
|
7
8
|
export declare class UsersService {
|
|
8
|
-
private
|
|
9
|
-
constructor(
|
|
9
|
+
private client;
|
|
10
|
+
constructor(client: Client);
|
|
10
11
|
/**
|
|
11
12
|
* List all users
|
|
12
|
-
*
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* const users = await recal.users.list()
|
|
17
|
+
* ```
|
|
13
18
|
*/
|
|
14
|
-
|
|
19
|
+
list(): Promise<{
|
|
20
|
+
createdAt: Date;
|
|
21
|
+
id: string;
|
|
22
|
+
oauthConnections?: Array<import("..").AuthConnection>;
|
|
23
|
+
organizations?: Array<import("..").Organization>;
|
|
24
|
+
}[]>;
|
|
15
25
|
/**
|
|
16
26
|
* Get a user by ID
|
|
17
|
-
*
|
|
18
|
-
* @param
|
|
19
|
-
* @
|
|
27
|
+
*
|
|
28
|
+
* @param userId - The user ID
|
|
29
|
+
* @param options - Query options
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const user = await recal.users.get('user-123', {
|
|
34
|
+
* include: ['organizations', 'oauthConnections']
|
|
35
|
+
* })
|
|
36
|
+
* ```
|
|
20
37
|
*/
|
|
21
|
-
get(
|
|
38
|
+
get(userId: string, options?: GetV1UsersUserIdData['query']): Promise<{
|
|
39
|
+
createdAt: Date;
|
|
40
|
+
id: string;
|
|
41
|
+
oauthConnections?: Array<import("..").AuthConnection>;
|
|
42
|
+
organizations?: Array<import("..").Organization>;
|
|
43
|
+
}>;
|
|
22
44
|
/**
|
|
23
45
|
* Create a new user
|
|
24
|
-
*
|
|
25
|
-
* @param
|
|
26
|
-
* @
|
|
46
|
+
*
|
|
47
|
+
* @param userId - The user ID
|
|
48
|
+
* @param organizationSlugs - Optional organization slugs to add user to
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* const user = await recal.users.create('user-123', ['org-1'])
|
|
53
|
+
* ```
|
|
27
54
|
*/
|
|
28
|
-
create(
|
|
55
|
+
create(userId: string, organizationSlugs?: string[]): Promise<{
|
|
56
|
+
createdAt: Date;
|
|
57
|
+
id: string;
|
|
58
|
+
oauthConnections?: Array<import("..").AuthConnection>;
|
|
59
|
+
organizations?: Array<import("..").Organization>;
|
|
60
|
+
}>;
|
|
29
61
|
/**
|
|
30
62
|
* Update a user
|
|
31
|
-
*
|
|
32
|
-
* @param
|
|
33
|
-
* @
|
|
63
|
+
*
|
|
64
|
+
* @param userId - The current user ID
|
|
65
|
+
* @param newUserId - The new user ID
|
|
66
|
+
*
|
|
67
|
+
* @example
|
|
68
|
+
* ```typescript
|
|
69
|
+
* const user = await recal.users.update('user-123', 'user-456')
|
|
70
|
+
* ```
|
|
34
71
|
*/
|
|
35
|
-
update(
|
|
72
|
+
update(userId: string, newUserId: string): Promise<{
|
|
73
|
+
createdAt: Date;
|
|
36
74
|
id: string;
|
|
37
|
-
|
|
75
|
+
oauthConnections?: Array<import("..").AuthConnection>;
|
|
76
|
+
organizations?: Array<import("..").Organization>;
|
|
77
|
+
}>;
|
|
38
78
|
/**
|
|
39
79
|
* Delete a user
|
|
40
|
-
*
|
|
41
|
-
* @
|
|
80
|
+
*
|
|
81
|
+
* @param userId - The user ID
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```typescript
|
|
85
|
+
* await recal.users.delete('user-123')
|
|
86
|
+
* ```
|
|
87
|
+
*/
|
|
88
|
+
delete(userId: string): Promise<{
|
|
89
|
+
createdAt: Date;
|
|
90
|
+
id: string;
|
|
91
|
+
oauthConnections?: Array<import("..").AuthConnection>;
|
|
92
|
+
organizations?: Array<import("..").Organization>;
|
|
93
|
+
}>;
|
|
94
|
+
/**
|
|
95
|
+
* Get all organizations a user is connected to
|
|
96
|
+
*
|
|
97
|
+
* @param userId - The user ID
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```typescript
|
|
101
|
+
* const orgs = await recal.users.getOrganizations('user-123')
|
|
102
|
+
* ```
|
|
42
103
|
*/
|
|
43
|
-
|
|
104
|
+
getOrganizations(userId: string): Promise<import("..").Organization[]>;
|
|
44
105
|
}
|
|
45
|
-
export {};
|
|
46
106
|
//# sourceMappingURL=users.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.service.d.ts","sourceRoot":"","sources":["../../src/services/users.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"users.service.d.ts","sourceRoot":"","sources":["../../src/services/users.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAG/D;;;;GAIG;AACH,qBAAa,YAAY;IACT,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAElC;;;;;;;OAOG;IACG,IAAI;;;;;;IAKV;;;;;;;;;;;;OAYG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,CAAC,OAAO,CAAC;;;;;;IASjE;;;;;;;;;;OAUG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE;;;;;;IAQzD;;;;;;;;;;OAUG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;;;;;;IAS9C;;;;;;;;;OASG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM;;;;;;IAQ3B;;;;;;;;;OASG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM;CAOxC"}
|
|
@@ -1,93 +1,118 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import * as sdk from '../client/sdk.gen';
|
|
2
|
+
import { unwrapResponse } from '../utils/response';
|
|
3
|
+
/**
|
|
4
|
+
* Users Service
|
|
5
|
+
*
|
|
6
|
+
* Provides methods for managing users
|
|
7
|
+
*/
|
|
7
8
|
export class UsersService {
|
|
8
|
-
|
|
9
|
-
constructor(
|
|
10
|
-
this.
|
|
9
|
+
client;
|
|
10
|
+
constructor(client) {
|
|
11
|
+
this.client = client;
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
13
14
|
* List all users
|
|
14
|
-
*
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const users = await recal.users.list()
|
|
19
|
+
* ```
|
|
15
20
|
*/
|
|
16
|
-
async
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
.then((users) => users.map((user) => User.fromJson(user, this.fetchHelper)));
|
|
21
|
+
async list() {
|
|
22
|
+
const response = await sdk.getV1Users({ client: this.client });
|
|
23
|
+
return unwrapResponse(response);
|
|
20
24
|
}
|
|
21
25
|
/**
|
|
22
26
|
* Get a user by ID
|
|
23
|
-
*
|
|
24
|
-
* @param
|
|
25
|
-
* @
|
|
27
|
+
*
|
|
28
|
+
* @param userId - The user ID
|
|
29
|
+
* @param options - Query options
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* const user = await recal.users.get('user-123', {
|
|
34
|
+
* include: ['organizations', 'oauthConnections']
|
|
35
|
+
* })
|
|
36
|
+
* ```
|
|
26
37
|
*/
|
|
27
|
-
async get(
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
[includeOAuth, 'oauthConnections'],
|
|
35
|
-
]),
|
|
36
|
-
},
|
|
37
|
-
})
|
|
38
|
-
.catch(errorHandler([{ code: 404, result: null }]))
|
|
39
|
-
.then((user) => (user ? User.fromJson(user, this.fetchHelper) : null));
|
|
38
|
+
async get(userId, options) {
|
|
39
|
+
const response = await sdk.getV1UsersUserId({
|
|
40
|
+
path: { userId },
|
|
41
|
+
query: options,
|
|
42
|
+
client: this.client,
|
|
43
|
+
});
|
|
44
|
+
return unwrapResponse(response);
|
|
40
45
|
}
|
|
41
46
|
/**
|
|
42
47
|
* Create a new user
|
|
43
|
-
*
|
|
44
|
-
* @param
|
|
45
|
-
* @
|
|
48
|
+
*
|
|
49
|
+
* @param userId - The user ID
|
|
50
|
+
* @param organizationSlugs - Optional organization slugs to add user to
|
|
51
|
+
*
|
|
52
|
+
* @example
|
|
53
|
+
* ```typescript
|
|
54
|
+
* const user = await recal.users.create('user-123', ['org-1'])
|
|
55
|
+
* ```
|
|
46
56
|
*/
|
|
47
|
-
async create(
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
.catch(errorHandler([
|
|
54
|
-
{ code: 404, error: new OrganizationNotFoundError(id) },
|
|
55
|
-
{ code: 409, error: new UserAlreadyExistsError(id) },
|
|
56
|
-
]))
|
|
57
|
-
.then((user) => User.fromJson(user, this.fetchHelper));
|
|
57
|
+
async create(userId, organizationSlugs) {
|
|
58
|
+
const response = await sdk.postV1Users({
|
|
59
|
+
body: { id: userId, organizationSlugs },
|
|
60
|
+
client: this.client,
|
|
61
|
+
});
|
|
62
|
+
return unwrapResponse(response);
|
|
58
63
|
}
|
|
59
64
|
/**
|
|
60
65
|
* Update a user
|
|
61
|
-
*
|
|
62
|
-
* @param
|
|
63
|
-
* @
|
|
66
|
+
*
|
|
67
|
+
* @param userId - The current user ID
|
|
68
|
+
* @param newUserId - The new user ID
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* const user = await recal.users.update('user-123', 'user-456')
|
|
73
|
+
* ```
|
|
64
74
|
*/
|
|
65
|
-
async update(
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
body: {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
})
|
|
73
|
-
.catch(errorHandler([
|
|
74
|
-
{ code: 404, result: null },
|
|
75
|
-
{ code: 409, error: new UserAlreadyExistsError(id) },
|
|
76
|
-
]))
|
|
77
|
-
.then((updatedUser) => (updatedUser ? User.fromJson(updatedUser, this.fetchHelper) : null));
|
|
75
|
+
async update(userId, newUserId) {
|
|
76
|
+
const response = await sdk.putV1UsersUserId({
|
|
77
|
+
path: { userId },
|
|
78
|
+
body: { userId: newUserId },
|
|
79
|
+
client: this.client,
|
|
80
|
+
});
|
|
81
|
+
return unwrapResponse(response);
|
|
78
82
|
}
|
|
79
83
|
/**
|
|
80
84
|
* Delete a user
|
|
81
|
-
*
|
|
82
|
-
* @
|
|
85
|
+
*
|
|
86
|
+
* @param userId - The user ID
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* ```typescript
|
|
90
|
+
* await recal.users.delete('user-123')
|
|
91
|
+
* ```
|
|
83
92
|
*/
|
|
84
|
-
async delete(
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
})
|
|
89
|
-
|
|
90
|
-
|
|
93
|
+
async delete(userId) {
|
|
94
|
+
const response = await sdk.deleteV1UsersUserId({
|
|
95
|
+
path: { userId },
|
|
96
|
+
client: this.client,
|
|
97
|
+
});
|
|
98
|
+
return unwrapResponse(response);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Get all organizations a user is connected to
|
|
102
|
+
*
|
|
103
|
+
* @param userId - The user ID
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* const orgs = await recal.users.getOrganizations('user-123')
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
async getOrganizations(userId) {
|
|
111
|
+
const response = await sdk.getV1UsersUserIdOrganizations({
|
|
112
|
+
path: { userId },
|
|
113
|
+
client: this.client,
|
|
114
|
+
});
|
|
115
|
+
return unwrapResponse(response);
|
|
91
116
|
}
|
|
92
117
|
}
|
|
93
118
|
//# sourceMappingURL=users.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"users.service.js","sourceRoot":"","sources":["../../src/services/users.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"users.service.js","sourceRoot":"","sources":["../../src/services/users.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,GAAG,MAAM,mBAAmB,CAAA;AAExC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAElD;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACD;IAApB,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEtC;;;;;;;OAOG;IACH,KAAK,CAAC,IAAI;QACN,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAC9D,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED;;;;;;;;;;;;OAYG;IACH,KAAK,CAAC,GAAG,CAAC,MAAc,EAAE,OAAuC;QAC7D,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC;YACxC,IAAI,EAAE,EAAE,MAAM,EAAE;YAChB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAA;QACF,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,iBAA4B;QACrD,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,WAAW,CAAC;YACnC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE;YACvC,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAA;QACF,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,CAAC,MAAc,EAAE,SAAiB;QAC1C,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,gBAAgB,CAAC;YACxC,IAAI,EAAE,EAAE,MAAM,EAAE;YAChB,IAAI,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAA;QACF,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,MAAM,CAAC,MAAc;QACvB,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,mBAAmB,CAAC;YAC3C,IAAI,EAAE,EAAE,MAAM,EAAE;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAA;QACF,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;IAED;;;;;;;;;OASG;IACH,KAAK,CAAC,gBAAgB,CAAC,MAAc;QACjC,MAAM,QAAQ,GAAG,MAAM,GAAG,CAAC,6BAA6B,CAAC;YACrD,IAAI,EAAE,EAAE,MAAM,EAAE;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAA;QACF,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAA;IACnC,CAAC;CACJ"}
|