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,132 +1,206 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import * as sdk from '../client/sdk.gen';
|
|
2
|
+
import { unwrapResponse } from '../utils/response';
|
|
3
|
+
/**
|
|
4
|
+
* Organizations Service
|
|
5
|
+
*
|
|
6
|
+
* Provides methods for managing organizations
|
|
7
|
+
*/
|
|
8
8
|
export class OrganizationsService {
|
|
9
|
-
|
|
10
|
-
constructor(
|
|
11
|
-
this.
|
|
9
|
+
client;
|
|
10
|
+
constructor(client) {
|
|
11
|
+
this.client = client;
|
|
12
12
|
}
|
|
13
13
|
/**
|
|
14
14
|
* List all organizations
|
|
15
|
-
*
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```typescript
|
|
18
|
+
* const orgs = await recal.organizations.list()
|
|
19
|
+
* ```
|
|
16
20
|
*/
|
|
17
|
-
async
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
schema: T.Array(organizationSchema),
|
|
21
|
-
})
|
|
22
|
-
.then((organizations) => organizations.map((org) => Organization.fromJson(org, this.fetchHelper)));
|
|
23
|
-
}
|
|
24
|
-
async listAllFromUser(userId) {
|
|
25
|
-
return this.fetchHelper
|
|
26
|
-
.get(`/v1/users/${userId}/organizations`, {
|
|
27
|
-
schema: T.Array(organizationSchema),
|
|
28
|
-
})
|
|
29
|
-
.catch(errorHandler([{ code: 404, result: null }]))
|
|
30
|
-
.then((orgs) => (orgs ? orgs.map((org) => Organization.fromJson(org, this.fetchHelper)) : null));
|
|
21
|
+
async list() {
|
|
22
|
+
const response = await sdk.getV1Organizations({ client: this.client });
|
|
23
|
+
return unwrapResponse(response);
|
|
31
24
|
}
|
|
32
25
|
/**
|
|
33
26
|
* Get an organization by slug
|
|
34
|
-
*
|
|
35
|
-
* @
|
|
27
|
+
*
|
|
28
|
+
* @param slug - The organization slug
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* const org = await recal.organizations.get('acme-corp')
|
|
33
|
+
* ```
|
|
36
34
|
*/
|
|
37
35
|
async get(slug) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
.then((org) => Organization.fromJson(org, this.fetchHelper));
|
|
36
|
+
const response = await sdk.getV1OrganizationsOrgSlug({
|
|
37
|
+
path: { orgSlug: slug },
|
|
38
|
+
client: this.client,
|
|
39
|
+
});
|
|
40
|
+
return unwrapResponse(response);
|
|
44
41
|
}
|
|
45
42
|
/**
|
|
46
|
-
* Create
|
|
47
|
-
*
|
|
48
|
-
* @param
|
|
49
|
-
* @
|
|
43
|
+
* Create a new organization
|
|
44
|
+
*
|
|
45
|
+
* @param slug - The organization slug
|
|
46
|
+
* @param name - The organization name
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* const org = await recal.organizations.create('acme-corp', 'Acme Corporation')
|
|
51
|
+
* ```
|
|
50
52
|
*/
|
|
51
53
|
async create(slug, name) {
|
|
52
|
-
|
|
53
|
-
.post(`/v1/organizations`, {
|
|
54
|
+
const response = await sdk.postV1Organizations({
|
|
54
55
|
body: { slug, name },
|
|
55
|
-
|
|
56
|
-
})
|
|
57
|
-
|
|
58
|
-
.then((org) => Organization.fromJson(org, this.fetchHelper));
|
|
56
|
+
client: this.client,
|
|
57
|
+
});
|
|
58
|
+
return unwrapResponse(response);
|
|
59
59
|
}
|
|
60
60
|
/**
|
|
61
61
|
* Update an organization
|
|
62
|
-
*
|
|
63
|
-
* @param
|
|
64
|
-
* @
|
|
62
|
+
*
|
|
63
|
+
* @param slug - The organization slug
|
|
64
|
+
* @param data - Updated organization data
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```typescript
|
|
68
|
+
* const org = await recal.organizations.update('acme-corp', {
|
|
69
|
+
* slug: 'acme-corp',
|
|
70
|
+
* name: 'Acme Corp (Updated)'
|
|
71
|
+
* })
|
|
72
|
+
* ```
|
|
65
73
|
*/
|
|
66
|
-
async update(slug,
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
body:
|
|
70
|
-
|
|
71
|
-
})
|
|
72
|
-
|
|
73
|
-
{ code: 404, error: new OrganizationNotFoundError(slug) },
|
|
74
|
-
{ code: 409, error: new OrganizationAlreadyExistsError(slug) },
|
|
75
|
-
]))
|
|
76
|
-
.then((org) => Organization.fromJson(org, this.fetchHelper));
|
|
74
|
+
async update(slug, data) {
|
|
75
|
+
const response = await sdk.putV1OrganizationsOrgSlug({
|
|
76
|
+
path: { orgSlug: slug },
|
|
77
|
+
body: data,
|
|
78
|
+
client: this.client,
|
|
79
|
+
});
|
|
80
|
+
return unwrapResponse(response);
|
|
77
81
|
}
|
|
78
82
|
/**
|
|
79
83
|
* Delete an organization
|
|
80
|
-
*
|
|
81
|
-
* @
|
|
84
|
+
*
|
|
85
|
+
* @param slug - The organization slug
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* await recal.organizations.delete('acme-corp')
|
|
90
|
+
* ```
|
|
82
91
|
*/
|
|
83
92
|
async delete(slug) {
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
})
|
|
88
|
-
|
|
89
|
-
.then((org) => Organization.fromJson(org, this.fetchHelper));
|
|
93
|
+
const response = await sdk.deleteV1OrganizationsOrgSlug({
|
|
94
|
+
path: { orgSlug: slug },
|
|
95
|
+
client: this.client,
|
|
96
|
+
});
|
|
97
|
+
return unwrapResponse(response);
|
|
90
98
|
}
|
|
91
99
|
/**
|
|
92
|
-
* Get
|
|
93
|
-
*
|
|
94
|
-
* @
|
|
100
|
+
* Get all members of an organization
|
|
101
|
+
*
|
|
102
|
+
* @param slug - The organization slug
|
|
103
|
+
* @param options - Query options
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* const members = await recal.organizations.getMembers('acme-corp', {
|
|
108
|
+
* include: ['oauthConnections']
|
|
109
|
+
* })
|
|
110
|
+
* ```
|
|
95
111
|
*/
|
|
96
|
-
async getMembers(slug) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
112
|
+
async getMembers(slug, options) {
|
|
113
|
+
const response = await sdk.getV1OrganizationsOrgSlugMembers({
|
|
114
|
+
path: { orgSlug: slug },
|
|
115
|
+
query: options,
|
|
116
|
+
client: this.client,
|
|
117
|
+
});
|
|
118
|
+
return unwrapResponse(response);
|
|
103
119
|
}
|
|
104
120
|
/**
|
|
105
121
|
* Add members to an organization
|
|
106
|
-
*
|
|
107
|
-
* @param
|
|
108
|
-
* @
|
|
122
|
+
*
|
|
123
|
+
* @param slug - The organization slug
|
|
124
|
+
* @param userIds - Array of user IDs to add
|
|
125
|
+
*
|
|
126
|
+
* @example
|
|
127
|
+
* ```typescript
|
|
128
|
+
* await recal.organizations.addMembers('acme-corp', ['user-1', 'user-2'])
|
|
129
|
+
* ```
|
|
109
130
|
*/
|
|
110
131
|
async addMembers(slug, userIds) {
|
|
111
|
-
|
|
112
|
-
|
|
132
|
+
const response = await sdk.postV1OrganizationsOrgSlugMembers({
|
|
133
|
+
path: { orgSlug: slug },
|
|
113
134
|
body: { userIds },
|
|
114
|
-
|
|
115
|
-
|
|
135
|
+
client: this.client,
|
|
136
|
+
});
|
|
137
|
+
return unwrapResponse(response);
|
|
116
138
|
}
|
|
117
139
|
/**
|
|
118
140
|
* Remove members from an organization
|
|
119
|
-
*
|
|
120
|
-
* @param
|
|
121
|
-
* @
|
|
141
|
+
*
|
|
142
|
+
* @param slug - The organization slug
|
|
143
|
+
* @param userIds - Array of user IDs to remove
|
|
144
|
+
*
|
|
145
|
+
* @example
|
|
146
|
+
* ```typescript
|
|
147
|
+
* await recal.organizations.removeMembers('acme-corp', ['user-1'])
|
|
148
|
+
* ```
|
|
122
149
|
*/
|
|
123
150
|
async removeMembers(slug, userIds) {
|
|
124
|
-
|
|
125
|
-
|
|
151
|
+
const response = await sdk.deleteV1OrganizationsOrgSlugMembers({
|
|
152
|
+
path: { orgSlug: slug },
|
|
126
153
|
body: { userIds },
|
|
127
|
-
|
|
128
|
-
})
|
|
129
|
-
|
|
154
|
+
client: this.client,
|
|
155
|
+
});
|
|
156
|
+
return unwrapResponse(response);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Get consolidated busy times for all users in an organization
|
|
160
|
+
*
|
|
161
|
+
* @param slug - The organization slug
|
|
162
|
+
* @param options - Query options with time range
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```typescript
|
|
166
|
+
* const busy = await recal.organizations.getBusyTimes('acme-corp', {
|
|
167
|
+
* start: '2024-01-01T00:00:00Z',
|
|
168
|
+
* end: '2024-01-31T23:59:59Z',
|
|
169
|
+
* provider: 'google'
|
|
170
|
+
* })
|
|
171
|
+
* ```
|
|
172
|
+
*/
|
|
173
|
+
async getBusyTimes(slug, options) {
|
|
174
|
+
const response = await sdk.getV1OrganizationsOrgSlugCalendarBusy({
|
|
175
|
+
path: { orgSlug: slug },
|
|
176
|
+
query: options,
|
|
177
|
+
client: this.client,
|
|
178
|
+
});
|
|
179
|
+
return unwrapResponse(response);
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Get available time slots for all users in an organization
|
|
183
|
+
*
|
|
184
|
+
* @param slug - The organization slug
|
|
185
|
+
* @param options - Scheduling options
|
|
186
|
+
*
|
|
187
|
+
* @example
|
|
188
|
+
* ```typescript
|
|
189
|
+
* const slots = await recal.organizations.getScheduling('acme-corp', {
|
|
190
|
+
* start: '2024-01-15T00:00:00Z',
|
|
191
|
+
* end: '2024-01-19T23:59:59Z',
|
|
192
|
+
* slotDuration: '30',
|
|
193
|
+
* padding: '15'
|
|
194
|
+
* })
|
|
195
|
+
* ```
|
|
196
|
+
*/
|
|
197
|
+
async getScheduling(slug, options) {
|
|
198
|
+
const response = await sdk.getV1OrganizationsOrgSlugScheduling({
|
|
199
|
+
path: { orgSlug: slug },
|
|
200
|
+
query: options,
|
|
201
|
+
client: this.client,
|
|
202
|
+
});
|
|
203
|
+
return unwrapResponse(response);
|
|
130
204
|
}
|
|
131
205
|
}
|
|
132
206
|
//# sourceMappingURL=organizations.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"organizations.service.js","sourceRoot":"","sources":["../../src/services/organizations.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"organizations.service.js","sourceRoot":"","sources":["../../src/services/organizations.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,68 +1,131 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import {
|
|
1
|
+
import type { Client } from '../client/client';
|
|
2
|
+
import type { GetV1UsersUserIdSchedulingData, PostV1UsersSchedulingData, PostV1UsersUserIdSchedulingData } from '../client/types.gen';
|
|
3
|
+
/**
|
|
4
|
+
* Scheduling Service
|
|
5
|
+
*
|
|
6
|
+
* Provides methods for finding available time slots
|
|
7
|
+
*/
|
|
3
8
|
export declare class SchedulingService {
|
|
4
|
-
private
|
|
5
|
-
constructor(
|
|
9
|
+
private client;
|
|
10
|
+
constructor(client: Client);
|
|
6
11
|
/**
|
|
7
|
-
* Get available time slots
|
|
8
|
-
*
|
|
9
|
-
* @param
|
|
10
|
-
* @param
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Get available time slots based on busy data with advanced parameters
|
|
24
|
-
* @param userId The ID of the user
|
|
25
|
-
* @param schedules Array of schedule rules defining availability windows
|
|
26
|
-
* @param startDate The start date for availability search
|
|
27
|
-
* @param endDate The end date for availability search
|
|
28
|
-
* @param options Advanced scheduling options (all fields optional):
|
|
29
|
-
* - provider: Calendar provider(s) to check (optional)
|
|
30
|
-
* - padding: Minutes of padding between slots (optional)
|
|
31
|
-
* - slotDuration: Duration of each slot in minutes (optional)
|
|
32
|
-
* - timeZone: Time zone for the request (optional)
|
|
33
|
-
* - maxOverlaps: Maximum number of overlaps allowed (optional)
|
|
34
|
-
* @returns Available time slots with advanced scheduling options
|
|
12
|
+
* Get available time slots for a user (basic parameters)
|
|
13
|
+
*
|
|
14
|
+
* @param userId - The user ID
|
|
15
|
+
* @param options - Scheduling options
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* const slots = await recal.scheduling.getSlots('user-123', {
|
|
20
|
+
* start: '2024-01-15T00:00:00Z',
|
|
21
|
+
* end: '2024-01-19T23:59:59Z',
|
|
22
|
+
* slotDuration: '30',
|
|
23
|
+
* padding: '15',
|
|
24
|
+
* provider: 'google'
|
|
25
|
+
* })
|
|
26
|
+
* ```
|
|
35
27
|
*/
|
|
36
|
-
|
|
28
|
+
getSlots(userId: string, options: GetV1UsersUserIdSchedulingData['query']): Promise<{
|
|
29
|
+
availableSlots: Array<import("..").TimeRange>;
|
|
30
|
+
options: {
|
|
31
|
+
end: Date;
|
|
32
|
+
maxOverlaps: number;
|
|
33
|
+
padding: number;
|
|
34
|
+
slotDuration: number;
|
|
35
|
+
start: Date;
|
|
36
|
+
earliestTimeEachDay?: string;
|
|
37
|
+
latestTimeEachDay?: string;
|
|
38
|
+
};
|
|
39
|
+
}>;
|
|
37
40
|
/**
|
|
41
|
+
* Get available time slots for a user (advanced with custom schedules)
|
|
38
42
|
*
|
|
39
|
-
* @param
|
|
40
|
-
* @param
|
|
41
|
-
* @param
|
|
42
|
-
*
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
* -
|
|
47
|
-
*
|
|
48
|
-
*
|
|
43
|
+
* @param userId - The user ID
|
|
44
|
+
* @param options - Query scheduling options
|
|
45
|
+
* @param body - Custom schedules
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* const slots = await recal.scheduling.getAdvancedSlots(
|
|
50
|
+
* 'user-123',
|
|
51
|
+
* {
|
|
52
|
+
* start: '2024-01-15T00:00:00Z',
|
|
53
|
+
* end: '2024-01-19T23:59:59Z',
|
|
54
|
+
* slotDuration: '60',
|
|
55
|
+
* padding: '10'
|
|
56
|
+
* },
|
|
57
|
+
* {
|
|
58
|
+
* schedules: [
|
|
59
|
+
* {
|
|
60
|
+
* days: ['monday', 'wednesday', 'friday'],
|
|
61
|
+
* start: '09:00',
|
|
62
|
+
* end: '17:00'
|
|
63
|
+
* }
|
|
64
|
+
* ]
|
|
65
|
+
* }
|
|
66
|
+
* )
|
|
67
|
+
* ```
|
|
49
68
|
*/
|
|
50
|
-
|
|
69
|
+
getAdvancedSlots(userId: string, options: PostV1UsersUserIdSchedulingData['query'], body?: PostV1UsersUserIdSchedulingData['body']): Promise<{
|
|
70
|
+
availableSlots: Array<import("..").TimeRange>;
|
|
71
|
+
options: {
|
|
72
|
+
end: Date;
|
|
73
|
+
maxOverlaps: number;
|
|
74
|
+
padding: number;
|
|
75
|
+
slotDuration: number;
|
|
76
|
+
start: Date;
|
|
77
|
+
earliestTimeEachDay?: string;
|
|
78
|
+
latestTimeEachDay?: string;
|
|
79
|
+
};
|
|
80
|
+
}>;
|
|
51
81
|
/**
|
|
52
|
-
* Get available time slots
|
|
53
|
-
*
|
|
54
|
-
* @param
|
|
55
|
-
* @param
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
*
|
|
82
|
+
* Get available time slots for multiple users
|
|
83
|
+
*
|
|
84
|
+
* @param options - Query scheduling options
|
|
85
|
+
* @param users - Array of users with optional schedules
|
|
86
|
+
*
|
|
87
|
+
* @example
|
|
88
|
+
* ```typescript
|
|
89
|
+
* const slots = await recal.scheduling.getMultiUserSlots(
|
|
90
|
+
* {
|
|
91
|
+
* start: '2024-01-15T00:00:00Z',
|
|
92
|
+
* end: '2024-01-19T23:59:59Z',
|
|
93
|
+
* slotDuration: '60',
|
|
94
|
+
* padding: '10'
|
|
95
|
+
* },
|
|
96
|
+
* {
|
|
97
|
+
* users: [
|
|
98
|
+
* {
|
|
99
|
+
* id: 'user-1',
|
|
100
|
+
* schedules: [{ days: ['monday'], start: '09:00', end: '17:00' }]
|
|
101
|
+
* },
|
|
102
|
+
* { id: 'user-2' }
|
|
103
|
+
* ]
|
|
104
|
+
* }
|
|
105
|
+
* )
|
|
106
|
+
* ```
|
|
65
107
|
*/
|
|
66
|
-
|
|
108
|
+
getMultiUserSlots(options: PostV1UsersSchedulingData['query'], body?: PostV1UsersSchedulingData['body']): Promise<({
|
|
109
|
+
availableSlots: Array<import("..").TimeRange>;
|
|
110
|
+
options: {
|
|
111
|
+
end: Date;
|
|
112
|
+
maxOverlaps: number;
|
|
113
|
+
padding: number;
|
|
114
|
+
slotDuration: number;
|
|
115
|
+
start: Date;
|
|
116
|
+
earliestTimeEachDay?: string;
|
|
117
|
+
latestTimeEachDay?: string;
|
|
118
|
+
};
|
|
119
|
+
userId: string;
|
|
120
|
+
calendarIds?: Array<string>;
|
|
121
|
+
schedules?: Array<{
|
|
122
|
+
days: Array<"friday" | "monday" | "saturday" | "sunday" | "thursday" | "tuesday" | "wednesday">;
|
|
123
|
+
end: string;
|
|
124
|
+
start: string;
|
|
125
|
+
}>;
|
|
126
|
+
} | {
|
|
127
|
+
error: string;
|
|
128
|
+
userId: string;
|
|
129
|
+
})[]>;
|
|
67
130
|
}
|
|
68
131
|
//# sourceMappingURL=scheduling.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduling.service.d.ts","sourceRoot":"","sources":["../../src/services/scheduling.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scheduling.service.d.ts","sourceRoot":"","sources":["../../src/services/scheduling.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE9C,OAAO,KAAK,EACR,8BAA8B,EAC9B,yBAAyB,EACzB,+BAA+B,EAClC,MAAM,qBAAqB,CAAA;AAG5B;;;;GAIG;AACH,qBAAa,iBAAiB;IACd,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAElC;;;;;;;;;;;;;;;;OAgBG;IACG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,8BAA8B,CAAC,OAAO,CAAC;;;;;;;;+BAwF++pC,CAAC;6BAA0K,CAAC;;;IA/E1uqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,gBAAgB,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,+BAA+B,CAAC,OAAO,CAAC,EACjD,IAAI,CAAC,EAAE,+BAA+B,CAAC,MAAM,CAAC;;;;;;;;+BA+C0zvC,CAAC;6BAA0K,CAAC;;;IApCxhwC;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,iBAAiB,CAAC,OAAO,EAAE,yBAAyB,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,EAAE,yBAAyB,CAAC,MAAM,CAAC;;;;;;;;+BAS0y0C,CAAC;6BAA0K,CAAC;;;;;;;;;;;;;CADtk1C"}
|