@37signals/basecamp 0.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.
- package/README.md +600 -0
- package/dist/auth-strategy.d.ts +36 -0
- package/dist/auth-strategy.d.ts.map +1 -0
- package/dist/auth-strategy.js +33 -0
- package/dist/auth-strategy.js.map +1 -0
- package/dist/client.d.ts +224 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +715 -0
- package/dist/client.js.map +1 -0
- package/dist/errors.d.ts +137 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +269 -0
- package/dist/errors.js.map +1 -0
- package/dist/generated/metadata.json +2281 -0
- package/dist/generated/openapi-stripped.json +21268 -0
- package/dist/generated/path-mapping.d.ts +8 -0
- package/dist/generated/path-mapping.d.ts.map +1 -0
- package/dist/generated/path-mapping.js +192 -0
- package/dist/generated/path-mapping.js.map +1 -0
- package/dist/generated/path-mapping.ts +199 -0
- package/dist/generated/schema.d.ts +14883 -0
- package/dist/generated/services/attachments.d.ts +27 -0
- package/dist/generated/services/attachments.d.ts.map +1 -0
- package/dist/generated/services/attachments.js +49 -0
- package/dist/generated/services/attachments.js.map +1 -0
- package/dist/generated/services/attachments.ts +59 -0
- package/dist/generated/services/boosts.d.ts +114 -0
- package/dist/generated/services/boosts.d.ts.map +1 -0
- package/dist/generated/services/boosts.js +179 -0
- package/dist/generated/services/boosts.js.map +1 -0
- package/dist/generated/services/boosts.ts +250 -0
- package/dist/generated/services/campfires.d.ts +202 -0
- package/dist/generated/services/campfires.d.ts.map +1 -0
- package/dist/generated/services/campfires.js +309 -0
- package/dist/generated/services/campfires.js.map +1 -0
- package/dist/generated/services/campfires.ts +433 -0
- package/dist/generated/services/card-columns.d.ts +163 -0
- package/dist/generated/services/card-columns.d.ts.map +1 -0
- package/dist/generated/services/card-columns.js +264 -0
- package/dist/generated/services/card-columns.js.map +1 -0
- package/dist/generated/services/card-columns.ts +360 -0
- package/dist/generated/services/card-steps.d.ts +105 -0
- package/dist/generated/services/card-steps.d.ts.map +1 -0
- package/dist/generated/services/card-steps.js +148 -0
- package/dist/generated/services/card-steps.js.map +1 -0
- package/dist/generated/services/card-steps.ts +221 -0
- package/dist/generated/services/card-tables.d.ts +27 -0
- package/dist/generated/services/card-tables.d.ts.map +1 -0
- package/dist/generated/services/card-tables.js +40 -0
- package/dist/generated/services/card-tables.js.map +1 -0
- package/dist/generated/services/card-tables.ts +55 -0
- package/dist/generated/services/cards.d.ts +118 -0
- package/dist/generated/services/cards.d.ts.map +1 -0
- package/dist/generated/services/cards.js +166 -0
- package/dist/generated/services/cards.js.map +1 -0
- package/dist/generated/services/cards.ts +247 -0
- package/dist/generated/services/checkins.d.ts +278 -0
- package/dist/generated/services/checkins.d.ts.map +1 -0
- package/dist/generated/services/checkins.js +420 -0
- package/dist/generated/services/checkins.js.map +1 -0
- package/dist/generated/services/checkins.ts +600 -0
- package/dist/generated/services/client-approvals.d.ts +45 -0
- package/dist/generated/services/client-approvals.d.ts.map +1 -0
- package/dist/generated/services/client-approvals.js +58 -0
- package/dist/generated/services/client-approvals.js.map +1 -0
- package/dist/generated/services/client-approvals.ts +89 -0
- package/dist/generated/services/client-correspondences.d.ts +45 -0
- package/dist/generated/services/client-correspondences.d.ts.map +1 -0
- package/dist/generated/services/client-correspondences.js +58 -0
- package/dist/generated/services/client-correspondences.js.map +1 -0
- package/dist/generated/services/client-correspondences.ts +89 -0
- package/dist/generated/services/client-replies.d.ts +47 -0
- package/dist/generated/services/client-replies.d.ts.map +1 -0
- package/dist/generated/services/client-replies.js +65 -0
- package/dist/generated/services/client-replies.js.map +1 -0
- package/dist/generated/services/client-replies.ts +95 -0
- package/dist/generated/services/client-visibility.d.ts +35 -0
- package/dist/generated/services/client-visibility.d.ts.map +1 -0
- package/dist/generated/services/client-visibility.js +44 -0
- package/dist/generated/services/client-visibility.js.map +1 -0
- package/dist/generated/services/client-visibility.ts +68 -0
- package/dist/generated/services/comments.d.ts +86 -0
- package/dist/generated/services/comments.d.ts.map +1 -0
- package/dist/generated/services/comments.js +129 -0
- package/dist/generated/services/comments.js.map +1 -0
- package/dist/generated/services/comments.ts +185 -0
- package/dist/generated/services/documents.d.ts +92 -0
- package/dist/generated/services/documents.d.ts.map +1 -0
- package/dist/generated/services/documents.js +129 -0
- package/dist/generated/services/documents.js.map +1 -0
- package/dist/generated/services/documents.ts +191 -0
- package/dist/generated/services/events.d.ts +34 -0
- package/dist/generated/services/events.d.ts.map +1 -0
- package/dist/generated/services/events.js +39 -0
- package/dist/generated/services/events.js.map +1 -0
- package/dist/generated/services/events.ts +64 -0
- package/dist/generated/services/forwards.d.ts +112 -0
- package/dist/generated/services/forwards.d.ts.map +1 -0
- package/dist/generated/services/forwards.js +172 -0
- package/dist/generated/services/forwards.js.map +1 -0
- package/dist/generated/services/forwards.ts +241 -0
- package/dist/generated/services/index.d.ts +39 -0
- package/dist/generated/services/index.d.ts.map +1 -0
- package/dist/generated/services/index.js +39 -0
- package/dist/generated/services/index.js.map +1 -0
- package/dist/generated/services/index.ts +38 -0
- package/dist/generated/services/lineup.d.ts +67 -0
- package/dist/generated/services/lineup.d.ts.map +1 -0
- package/dist/generated/services/lineup.js +99 -0
- package/dist/generated/services/lineup.js.map +1 -0
- package/dist/generated/services/lineup.ts +143 -0
- package/dist/generated/services/message-boards.d.ts +27 -0
- package/dist/generated/services/message-boards.d.ts.map +1 -0
- package/dist/generated/services/message-boards.js +40 -0
- package/dist/generated/services/message-boards.js.map +1 -0
- package/dist/generated/services/message-boards.ts +55 -0
- package/dist/generated/services/message-types.d.ts +100 -0
- package/dist/generated/services/message-types.d.ts.map +1 -0
- package/dist/generated/services/message-types.js +144 -0
- package/dist/generated/services/message-types.js.map +1 -0
- package/dist/generated/services/message-types.ts +210 -0
- package/dist/generated/services/messages.d.ts +122 -0
- package/dist/generated/services/messages.d.ts.map +1 -0
- package/dist/generated/services/messages.js +180 -0
- package/dist/generated/services/messages.js.map +1 -0
- package/dist/generated/services/messages.ts +258 -0
- package/dist/generated/services/people.d.ts +122 -0
- package/dist/generated/services/people.d.ts.map +1 -0
- package/dist/generated/services/people.js +167 -0
- package/dist/generated/services/people.js.map +1 -0
- package/dist/generated/services/people.ts +252 -0
- package/dist/generated/services/projects.d.ts +109 -0
- package/dist/generated/services/projects.d.ts.map +1 -0
- package/dist/generated/services/projects.js +153 -0
- package/dist/generated/services/projects.js.map +1 -0
- package/dist/generated/services/projects.ts +224 -0
- package/dist/generated/services/recordings.d.ts +93 -0
- package/dist/generated/services/recordings.d.ts.map +1 -0
- package/dist/generated/services/recordings.js +138 -0
- package/dist/generated/services/recordings.js.map +1 -0
- package/dist/generated/services/recordings.ts +191 -0
- package/dist/generated/services/reports.d.ts +90 -0
- package/dist/generated/services/reports.d.ts.map +1 -0
- package/dist/generated/services/reports.js +124 -0
- package/dist/generated/services/reports.js.map +1 -0
- package/dist/generated/services/reports.ts +187 -0
- package/dist/generated/services/schedules.d.ts +162 -0
- package/dist/generated/services/schedules.d.ts.map +1 -0
- package/dist/generated/services/schedules.js +228 -0
- package/dist/generated/services/schedules.js.map +1 -0
- package/dist/generated/services/schedules.ts +335 -0
- package/dist/generated/services/search.d.ts +45 -0
- package/dist/generated/services/search.d.ts.map +1 -0
- package/dist/generated/services/search.js +56 -0
- package/dist/generated/services/search.js.map +1 -0
- package/dist/generated/services/search.ts +89 -0
- package/dist/generated/services/subscriptions.d.ts +73 -0
- package/dist/generated/services/subscriptions.d.ts.map +1 -0
- package/dist/generated/services/subscriptions.js +119 -0
- package/dist/generated/services/subscriptions.js.map +1 -0
- package/dist/generated/services/subscriptions.ts +160 -0
- package/dist/generated/services/templates.d.ts +140 -0
- package/dist/generated/services/templates.d.ts.map +1 -0
- package/dist/generated/services/templates.js +207 -0
- package/dist/generated/services/templates.js.map +1 -0
- package/dist/generated/services/templates.ts +294 -0
- package/dist/generated/services/timeline.d.ts +31 -0
- package/dist/generated/services/timeline.d.ts.map +1 -0
- package/dist/generated/services/timeline.js +39 -0
- package/dist/generated/services/timeline.js.map +1 -0
- package/dist/generated/services/timeline.ts +62 -0
- package/dist/generated/services/timesheets.d.ts +145 -0
- package/dist/generated/services/timesheets.d.ts.map +1 -0
- package/dist/generated/services/timesheets.js +186 -0
- package/dist/generated/services/timesheets.js.map +1 -0
- package/dist/generated/services/timesheets.ts +289 -0
- package/dist/generated/services/todolist-groups.d.ts +74 -0
- package/dist/generated/services/todolist-groups.d.ts.map +1 -0
- package/dist/generated/services/todolist-groups.js +100 -0
- package/dist/generated/services/todolist-groups.js.map +1 -0
- package/dist/generated/services/todolist-groups.ts +151 -0
- package/dist/generated/services/todolists.d.ts +95 -0
- package/dist/generated/services/todolists.d.ts.map +1 -0
- package/dist/generated/services/todolists.js +130 -0
- package/dist/generated/services/todolists.js.map +1 -0
- package/dist/generated/services/todolists.ts +192 -0
- package/dist/generated/services/todos.d.ts +175 -0
- package/dist/generated/services/todos.d.ts.map +1 -0
- package/dist/generated/services/todos.js +255 -0
- package/dist/generated/services/todos.js.map +1 -0
- package/dist/generated/services/todos.ts +369 -0
- package/dist/generated/services/todosets.d.ts +27 -0
- package/dist/generated/services/todosets.d.ts.map +1 -0
- package/dist/generated/services/todosets.js +40 -0
- package/dist/generated/services/todosets.js.map +1 -0
- package/dist/generated/services/todosets.ts +55 -0
- package/dist/generated/services/tools.d.ts +122 -0
- package/dist/generated/services/tools.d.ts.map +1 -0
- package/dist/generated/services/tools.js +197 -0
- package/dist/generated/services/tools.js.map +1 -0
- package/dist/generated/services/tools.ts +267 -0
- package/dist/generated/services/uploads.d.ts +109 -0
- package/dist/generated/services/uploads.d.ts.map +1 -0
- package/dist/generated/services/uploads.js +153 -0
- package/dist/generated/services/uploads.js.map +1 -0
- package/dist/generated/services/uploads.ts +227 -0
- package/dist/generated/services/vaults.d.ts +86 -0
- package/dist/generated/services/vaults.d.ts.map +1 -0
- package/dist/generated/services/vaults.js +126 -0
- package/dist/generated/services/vaults.js.map +1 -0
- package/dist/generated/services/vaults.ts +182 -0
- package/dist/generated/services/webhooks.d.ts +106 -0
- package/dist/generated/services/webhooks.d.ts.map +1 -0
- package/dist/generated/services/webhooks.js +157 -0
- package/dist/generated/services/webhooks.js.map +1 -0
- package/dist/generated/services/webhooks.ts +226 -0
- package/dist/hooks/otel.d.ts +136 -0
- package/dist/hooks/otel.d.ts.map +1 -0
- package/dist/hooks/otel.js +240 -0
- package/dist/hooks/otel.js.map +1 -0
- package/dist/hooks.d.ts +171 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +196 -0
- package/dist/hooks.js.map +1 -0
- package/dist/index.d.ts +90 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +122 -0
- package/dist/index.js.map +1 -0
- package/dist/oauth/authorize.d.ts +48 -0
- package/dist/oauth/authorize.d.ts.map +1 -0
- package/dist/oauth/authorize.js +56 -0
- package/dist/oauth/authorize.js.map +1 -0
- package/dist/oauth/callback-server.d.ts +56 -0
- package/dist/oauth/callback-server.d.ts.map +1 -0
- package/dist/oauth/callback-server.js +150 -0
- package/dist/oauth/callback-server.js.map +1 -0
- package/dist/oauth/discovery.d.ts +54 -0
- package/dist/oauth/discovery.d.ts.map +1 -0
- package/dist/oauth/discovery.js +116 -0
- package/dist/oauth/discovery.js.map +1 -0
- package/dist/oauth/exchange.d.ts +96 -0
- package/dist/oauth/exchange.d.ts.map +1 -0
- package/dist/oauth/exchange.js +324 -0
- package/dist/oauth/exchange.js.map +1 -0
- package/dist/oauth/identity.d.ts +30 -0
- package/dist/oauth/identity.d.ts.map +1 -0
- package/dist/oauth/identity.js +82 -0
- package/dist/oauth/identity.js.map +1 -0
- package/dist/oauth/index.d.ts +50 -0
- package/dist/oauth/index.d.ts.map +1 -0
- package/dist/oauth/index.js +58 -0
- package/dist/oauth/index.js.map +1 -0
- package/dist/oauth/interactive-login.d.ts +62 -0
- package/dist/oauth/interactive-login.d.ts.map +1 -0
- package/dist/oauth/interactive-login.js +106 -0
- package/dist/oauth/interactive-login.js.map +1 -0
- package/dist/oauth/pkce.d.ts +68 -0
- package/dist/oauth/pkce.d.ts.map +1 -0
- package/dist/oauth/pkce.js +80 -0
- package/dist/oauth/pkce.js.map +1 -0
- package/dist/oauth/token-manager.d.ts +92 -0
- package/dist/oauth/token-manager.d.ts.map +1 -0
- package/dist/oauth/token-manager.js +126 -0
- package/dist/oauth/token-manager.js.map +1 -0
- package/dist/oauth/token-store.d.ts +45 -0
- package/dist/oauth/token-store.d.ts.map +1 -0
- package/dist/oauth/token-store.js +105 -0
- package/dist/oauth/token-store.js.map +1 -0
- package/dist/oauth/types.d.ts +98 -0
- package/dist/oauth/types.d.ts.map +1 -0
- package/dist/oauth/types.js +8 -0
- package/dist/oauth/types.js.map +1 -0
- package/dist/pagination-utils.d.ts +27 -0
- package/dist/pagination-utils.d.ts.map +1 -0
- package/dist/pagination-utils.js +54 -0
- package/dist/pagination-utils.js.map +1 -0
- package/dist/pagination.d.ts +56 -0
- package/dist/pagination.d.ts.map +1 -0
- package/dist/pagination.js +57 -0
- package/dist/pagination.js.map +1 -0
- package/dist/security.d.ts +68 -0
- package/dist/security.d.ts.map +1 -0
- package/dist/security.js +107 -0
- package/dist/security.js.map +1 -0
- package/dist/services/authorization.d.ts +124 -0
- package/dist/services/authorization.d.ts.map +1 -0
- package/dist/services/authorization.js +117 -0
- package/dist/services/authorization.js.map +1 -0
- package/dist/services/base.d.ts +102 -0
- package/dist/services/base.d.ts.map +1 -0
- package/dist/services/base.js +230 -0
- package/dist/services/base.js.map +1 -0
- package/dist/webhooks/adapters/node-http.d.ts +14 -0
- package/dist/webhooks/adapters/node-http.d.ts.map +1 -0
- package/dist/webhooks/adapters/node-http.js +60 -0
- package/dist/webhooks/adapters/node-http.js.map +1 -0
- package/dist/webhooks/events.d.ts +52 -0
- package/dist/webhooks/events.d.ts.map +1 -0
- package/dist/webhooks/events.js +52 -0
- package/dist/webhooks/events.js.map +1 -0
- package/dist/webhooks/handler.d.ts +62 -0
- package/dist/webhooks/handler.d.ts.map +1 -0
- package/dist/webhooks/handler.js +226 -0
- package/dist/webhooks/handler.js.map +1 -0
- package/dist/webhooks/index.d.ts +5 -0
- package/dist/webhooks/index.d.ts.map +1 -0
- package/dist/webhooks/index.js +5 -0
- package/dist/webhooks/index.js.map +1 -0
- package/dist/webhooks/verify.d.ts +11 -0
- package/dist/webhooks/verify.d.ts.map +1 -0
- package/dist/webhooks/verify.js +25 -0
- package/dist/webhooks/verify.js.map +1 -0
- package/package.json +70 -0
- package/src/generated/metadata.json +2281 -0
- package/src/generated/openapi-stripped.json +21268 -0
- package/src/generated/path-mapping.ts +199 -0
- package/src/generated/schema.d.ts +14883 -0
- package/src/generated/services/attachments.ts +59 -0
- package/src/generated/services/boosts.ts +250 -0
- package/src/generated/services/campfires.ts +433 -0
- package/src/generated/services/card-columns.ts +360 -0
- package/src/generated/services/card-steps.ts +221 -0
- package/src/generated/services/card-tables.ts +55 -0
- package/src/generated/services/cards.ts +247 -0
- package/src/generated/services/checkins.ts +600 -0
- package/src/generated/services/client-approvals.ts +89 -0
- package/src/generated/services/client-correspondences.ts +89 -0
- package/src/generated/services/client-replies.ts +95 -0
- package/src/generated/services/client-visibility.ts +68 -0
- package/src/generated/services/comments.ts +185 -0
- package/src/generated/services/documents.ts +191 -0
- package/src/generated/services/events.ts +64 -0
- package/src/generated/services/forwards.ts +241 -0
- package/src/generated/services/index.ts +38 -0
- package/src/generated/services/lineup.ts +143 -0
- package/src/generated/services/message-boards.ts +55 -0
- package/src/generated/services/message-types.ts +210 -0
- package/src/generated/services/messages.ts +258 -0
- package/src/generated/services/people.ts +252 -0
- package/src/generated/services/projects.ts +224 -0
- package/src/generated/services/recordings.ts +191 -0
- package/src/generated/services/reports.ts +187 -0
- package/src/generated/services/schedules.ts +335 -0
- package/src/generated/services/search.ts +89 -0
- package/src/generated/services/subscriptions.ts +160 -0
- package/src/generated/services/templates.ts +294 -0
- package/src/generated/services/timeline.ts +62 -0
- package/src/generated/services/timesheets.ts +289 -0
- package/src/generated/services/todolist-groups.ts +151 -0
- package/src/generated/services/todolists.ts +192 -0
- package/src/generated/services/todos.ts +369 -0
- package/src/generated/services/todosets.ts +55 -0
- package/src/generated/services/tools.ts +267 -0
- package/src/generated/services/uploads.ts +227 -0
- package/src/generated/services/vaults.ts +182 -0
- package/src/generated/services/webhooks.ts +226 -0
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Schedules service for the Basecamp API.
|
|
3
|
+
*
|
|
4
|
+
* @generated from OpenAPI spec - do not edit directly
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { BaseService } from "../../services/base.js";
|
|
8
|
+
import type { components } from "../schema.js";
|
|
9
|
+
import { ListResult } from "../../pagination.js";
|
|
10
|
+
import type { PaginationOptions } from "../../pagination.js";
|
|
11
|
+
import { Errors } from "../../errors.js";
|
|
12
|
+
|
|
13
|
+
// =============================================================================
|
|
14
|
+
// Types
|
|
15
|
+
// =============================================================================
|
|
16
|
+
|
|
17
|
+
/** ScheduleEntry entity from the Basecamp API. */
|
|
18
|
+
export type ScheduleEntry = components["schemas"]["ScheduleEntry"];
|
|
19
|
+
/** Schedule entity from the Basecamp API. */
|
|
20
|
+
export type Schedule = components["schemas"]["Schedule"];
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Request parameters for updateEntry.
|
|
24
|
+
*/
|
|
25
|
+
export interface UpdateEntryScheduleRequest {
|
|
26
|
+
/** Summary text */
|
|
27
|
+
summary?: string;
|
|
28
|
+
/** Starts at (RFC3339 (e.g., 2024-12-15T09:00:00Z)) */
|
|
29
|
+
startsAt?: string;
|
|
30
|
+
/** Ends at (RFC3339 (e.g., 2024-12-15T09:00:00Z)) */
|
|
31
|
+
endsAt?: string;
|
|
32
|
+
/** Rich text description (HTML) */
|
|
33
|
+
description?: string;
|
|
34
|
+
/** Participant ids */
|
|
35
|
+
participantIds?: number[];
|
|
36
|
+
/** All day */
|
|
37
|
+
allDay?: boolean;
|
|
38
|
+
/** Whether to send notifications to relevant people */
|
|
39
|
+
notify?: boolean;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Request parameters for updateSettings.
|
|
44
|
+
*/
|
|
45
|
+
export interface UpdateSettingsScheduleRequest {
|
|
46
|
+
/** Include due assignments */
|
|
47
|
+
includeDueAssignments: boolean;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Options for listEntries.
|
|
52
|
+
*/
|
|
53
|
+
export interface ListEntriesScheduleOptions extends PaginationOptions {
|
|
54
|
+
/** Filter by status */
|
|
55
|
+
status?: "active" | "archived" | "trashed";
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Request parameters for createEntry.
|
|
60
|
+
*/
|
|
61
|
+
export interface CreateEntryScheduleRequest {
|
|
62
|
+
/** Summary text */
|
|
63
|
+
summary: string;
|
|
64
|
+
/** Starts at (RFC3339 (e.g., 2024-12-15T09:00:00Z)) */
|
|
65
|
+
startsAt: string;
|
|
66
|
+
/** Ends at (RFC3339 (e.g., 2024-12-15T09:00:00Z)) */
|
|
67
|
+
endsAt: string;
|
|
68
|
+
/** Rich text description (HTML) */
|
|
69
|
+
description?: string;
|
|
70
|
+
/** Participant ids */
|
|
71
|
+
participantIds?: number[];
|
|
72
|
+
/** All day */
|
|
73
|
+
allDay?: boolean;
|
|
74
|
+
/** Whether to send notifications to relevant people */
|
|
75
|
+
notify?: boolean;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
// =============================================================================
|
|
80
|
+
// Service
|
|
81
|
+
// =============================================================================
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Service for Schedules operations.
|
|
85
|
+
*/
|
|
86
|
+
export class SchedulesService extends BaseService {
|
|
87
|
+
|
|
88
|
+
/**
|
|
89
|
+
* Get a single schedule entry by id.
|
|
90
|
+
* @param entryId - The entry ID
|
|
91
|
+
* @returns The ScheduleEntry
|
|
92
|
+
* @throws {BasecampError} If the resource is not found
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```ts
|
|
96
|
+
* const result = await client.schedules.getEntry(123);
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
async getEntry(entryId: number): Promise<ScheduleEntry> {
|
|
100
|
+
const response = await this.request(
|
|
101
|
+
{
|
|
102
|
+
service: "Schedules",
|
|
103
|
+
operation: "GetScheduleEntry",
|
|
104
|
+
resourceType: "schedule_entry",
|
|
105
|
+
isMutation: false,
|
|
106
|
+
resourceId: entryId,
|
|
107
|
+
},
|
|
108
|
+
() =>
|
|
109
|
+
this.client.GET("/schedule_entries/{entryId}", {
|
|
110
|
+
params: {
|
|
111
|
+
path: { entryId },
|
|
112
|
+
},
|
|
113
|
+
})
|
|
114
|
+
);
|
|
115
|
+
return response;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Update an existing schedule entry
|
|
120
|
+
* @param entryId - The entry ID
|
|
121
|
+
* @param req - Schedule_entry update parameters
|
|
122
|
+
* @returns The ScheduleEntry
|
|
123
|
+
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```ts
|
|
127
|
+
* const result = await client.schedules.updateEntry(123, { });
|
|
128
|
+
* ```
|
|
129
|
+
*/
|
|
130
|
+
async updateEntry(entryId: number, req: UpdateEntryScheduleRequest): Promise<ScheduleEntry> {
|
|
131
|
+
const response = await this.request(
|
|
132
|
+
{
|
|
133
|
+
service: "Schedules",
|
|
134
|
+
operation: "UpdateScheduleEntry",
|
|
135
|
+
resourceType: "schedule_entry",
|
|
136
|
+
isMutation: true,
|
|
137
|
+
resourceId: entryId,
|
|
138
|
+
},
|
|
139
|
+
() =>
|
|
140
|
+
this.client.PUT("/schedule_entries/{entryId}", {
|
|
141
|
+
params: {
|
|
142
|
+
path: { entryId },
|
|
143
|
+
},
|
|
144
|
+
body: {
|
|
145
|
+
summary: req.summary,
|
|
146
|
+
starts_at: req.startsAt,
|
|
147
|
+
ends_at: req.endsAt,
|
|
148
|
+
description: req.description,
|
|
149
|
+
participant_ids: req.participantIds,
|
|
150
|
+
all_day: req.allDay,
|
|
151
|
+
notify: req.notify,
|
|
152
|
+
},
|
|
153
|
+
})
|
|
154
|
+
);
|
|
155
|
+
return response;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/**
|
|
159
|
+
* Get a specific occurrence of a recurring schedule entry
|
|
160
|
+
* @param entryId - The entry ID
|
|
161
|
+
* @param date - The date
|
|
162
|
+
* @returns The ScheduleEntry
|
|
163
|
+
* @throws {BasecampError} If the resource is not found
|
|
164
|
+
*
|
|
165
|
+
* @example
|
|
166
|
+
* ```ts
|
|
167
|
+
* const result = await client.schedules.getEntryOccurrence(123, "example");
|
|
168
|
+
* ```
|
|
169
|
+
*/
|
|
170
|
+
async getEntryOccurrence(entryId: number, date: string): Promise<ScheduleEntry> {
|
|
171
|
+
const response = await this.request(
|
|
172
|
+
{
|
|
173
|
+
service: "Schedules",
|
|
174
|
+
operation: "GetScheduleEntryOccurrence",
|
|
175
|
+
resourceType: "schedule_entry_occurrence",
|
|
176
|
+
isMutation: false,
|
|
177
|
+
resourceId: entryId,
|
|
178
|
+
},
|
|
179
|
+
() =>
|
|
180
|
+
this.client.GET("/schedule_entries/{entryId}/occurrences/{date}", {
|
|
181
|
+
params: {
|
|
182
|
+
path: { entryId, date },
|
|
183
|
+
},
|
|
184
|
+
})
|
|
185
|
+
);
|
|
186
|
+
return response;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Get a schedule
|
|
191
|
+
* @param scheduleId - The schedule ID
|
|
192
|
+
* @returns The Schedule
|
|
193
|
+
* @throws {BasecampError} If the resource is not found
|
|
194
|
+
*
|
|
195
|
+
* @example
|
|
196
|
+
* ```ts
|
|
197
|
+
* const result = await client.schedules.get(123);
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
async get(scheduleId: number): Promise<Schedule> {
|
|
201
|
+
const response = await this.request(
|
|
202
|
+
{
|
|
203
|
+
service: "Schedules",
|
|
204
|
+
operation: "GetSchedule",
|
|
205
|
+
resourceType: "schedule",
|
|
206
|
+
isMutation: false,
|
|
207
|
+
resourceId: scheduleId,
|
|
208
|
+
},
|
|
209
|
+
() =>
|
|
210
|
+
this.client.GET("/schedules/{scheduleId}", {
|
|
211
|
+
params: {
|
|
212
|
+
path: { scheduleId },
|
|
213
|
+
},
|
|
214
|
+
})
|
|
215
|
+
);
|
|
216
|
+
return response;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
/**
|
|
220
|
+
* Update schedule settings
|
|
221
|
+
* @param scheduleId - The schedule ID
|
|
222
|
+
* @param req - Schedule_setting update parameters
|
|
223
|
+
* @returns The Schedule
|
|
224
|
+
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
225
|
+
*
|
|
226
|
+
* @example
|
|
227
|
+
* ```ts
|
|
228
|
+
* const result = await client.schedules.updateSettings(123, { includeDueAssignments: true });
|
|
229
|
+
* ```
|
|
230
|
+
*/
|
|
231
|
+
async updateSettings(scheduleId: number, req: UpdateSettingsScheduleRequest): Promise<Schedule> {
|
|
232
|
+
const response = await this.request(
|
|
233
|
+
{
|
|
234
|
+
service: "Schedules",
|
|
235
|
+
operation: "UpdateScheduleSettings",
|
|
236
|
+
resourceType: "schedule_setting",
|
|
237
|
+
isMutation: true,
|
|
238
|
+
resourceId: scheduleId,
|
|
239
|
+
},
|
|
240
|
+
() =>
|
|
241
|
+
this.client.PUT("/schedules/{scheduleId}", {
|
|
242
|
+
params: {
|
|
243
|
+
path: { scheduleId },
|
|
244
|
+
},
|
|
245
|
+
body: {
|
|
246
|
+
include_due_assignments: req.includeDueAssignments,
|
|
247
|
+
},
|
|
248
|
+
})
|
|
249
|
+
);
|
|
250
|
+
return response;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* List entries on a schedule
|
|
255
|
+
* @param scheduleId - The schedule ID
|
|
256
|
+
* @param options - Optional query parameters
|
|
257
|
+
* @returns All ScheduleEntry across all pages, with .meta.totalCount
|
|
258
|
+
*
|
|
259
|
+
* @example
|
|
260
|
+
* ```ts
|
|
261
|
+
* const result = await client.schedules.listEntries(123);
|
|
262
|
+
*
|
|
263
|
+
* // With options
|
|
264
|
+
* const filtered = await client.schedules.listEntries(123, { status: "active" });
|
|
265
|
+
* ```
|
|
266
|
+
*/
|
|
267
|
+
async listEntries(scheduleId: number, options?: ListEntriesScheduleOptions): Promise<ListResult<ScheduleEntry>> {
|
|
268
|
+
return this.requestPaginated(
|
|
269
|
+
{
|
|
270
|
+
service: "Schedules",
|
|
271
|
+
operation: "ListScheduleEntries",
|
|
272
|
+
resourceType: "schedule_entrie",
|
|
273
|
+
isMutation: false,
|
|
274
|
+
resourceId: scheduleId,
|
|
275
|
+
},
|
|
276
|
+
() =>
|
|
277
|
+
this.client.GET("/schedules/{scheduleId}/entries.json", {
|
|
278
|
+
params: {
|
|
279
|
+
path: { scheduleId },
|
|
280
|
+
query: { status: options?.status },
|
|
281
|
+
},
|
|
282
|
+
})
|
|
283
|
+
, options
|
|
284
|
+
);
|
|
285
|
+
}
|
|
286
|
+
|
|
287
|
+
/**
|
|
288
|
+
* Create a new schedule entry
|
|
289
|
+
* @param scheduleId - The schedule ID
|
|
290
|
+
* @param req - Schedule_entry creation parameters
|
|
291
|
+
* @returns The ScheduleEntry
|
|
292
|
+
* @throws {BasecampError} If required fields are missing or invalid
|
|
293
|
+
*
|
|
294
|
+
* @example
|
|
295
|
+
* ```ts
|
|
296
|
+
* const result = await client.schedules.createEntry(123, { summary: "example", startsAt: "2025-06-01T09:00:00Z", endsAt: "2025-06-01T09:00:00Z" });
|
|
297
|
+
* ```
|
|
298
|
+
*/
|
|
299
|
+
async createEntry(scheduleId: number, req: CreateEntryScheduleRequest): Promise<ScheduleEntry> {
|
|
300
|
+
if (!req.summary) {
|
|
301
|
+
throw Errors.validation("Summary is required");
|
|
302
|
+
}
|
|
303
|
+
if (!req.startsAt) {
|
|
304
|
+
throw Errors.validation("Starts at is required");
|
|
305
|
+
}
|
|
306
|
+
if (!req.endsAt) {
|
|
307
|
+
throw Errors.validation("Ends at is required");
|
|
308
|
+
}
|
|
309
|
+
const response = await this.request(
|
|
310
|
+
{
|
|
311
|
+
service: "Schedules",
|
|
312
|
+
operation: "CreateScheduleEntry",
|
|
313
|
+
resourceType: "schedule_entry",
|
|
314
|
+
isMutation: true,
|
|
315
|
+
resourceId: scheduleId,
|
|
316
|
+
},
|
|
317
|
+
() =>
|
|
318
|
+
this.client.POST("/schedules/{scheduleId}/entries.json", {
|
|
319
|
+
params: {
|
|
320
|
+
path: { scheduleId },
|
|
321
|
+
},
|
|
322
|
+
body: {
|
|
323
|
+
summary: req.summary,
|
|
324
|
+
starts_at: req.startsAt,
|
|
325
|
+
ends_at: req.endsAt,
|
|
326
|
+
description: req.description,
|
|
327
|
+
participant_ids: req.participantIds,
|
|
328
|
+
all_day: req.allDay,
|
|
329
|
+
notify: req.notify,
|
|
330
|
+
},
|
|
331
|
+
})
|
|
332
|
+
);
|
|
333
|
+
return response;
|
|
334
|
+
}
|
|
335
|
+
}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Search service for the Basecamp API.
|
|
3
|
+
*
|
|
4
|
+
* @generated from OpenAPI spec - do not edit directly
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { BaseService } from "../../services/base.js";
|
|
8
|
+
import type { components } from "../schema.js";
|
|
9
|
+
import { ListResult } from "../../pagination.js";
|
|
10
|
+
import type { PaginationOptions } from "../../pagination.js";
|
|
11
|
+
|
|
12
|
+
// =============================================================================
|
|
13
|
+
// Types
|
|
14
|
+
// =============================================================================
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Options for search.
|
|
19
|
+
*/
|
|
20
|
+
export interface SearchSearchOptions extends PaginationOptions {
|
|
21
|
+
/** Filter by sort */
|
|
22
|
+
sort?: "created_at" | "updated_at";
|
|
23
|
+
/** Page */
|
|
24
|
+
page?: number;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
// =============================================================================
|
|
29
|
+
// Service
|
|
30
|
+
// =============================================================================
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Service for Search operations.
|
|
34
|
+
*/
|
|
35
|
+
export class SearchService extends BaseService {
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Search for content across the account
|
|
39
|
+
* @param query - query
|
|
40
|
+
* @param options - Optional query parameters
|
|
41
|
+
* @returns All results across all pages, with .meta.totalCount
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* const result = await client.search.search("query");
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
async search(query: string, options?: SearchSearchOptions): Promise<components["schemas"]["SearchResponseContent"]> {
|
|
49
|
+
return this.requestPaginated(
|
|
50
|
+
{
|
|
51
|
+
service: "Search",
|
|
52
|
+
operation: "Search",
|
|
53
|
+
resourceType: "resource",
|
|
54
|
+
isMutation: false,
|
|
55
|
+
},
|
|
56
|
+
() =>
|
|
57
|
+
this.client.GET("/search.json", {
|
|
58
|
+
params: {
|
|
59
|
+
query: { query: query, sort: options?.sort, page: options?.page },
|
|
60
|
+
},
|
|
61
|
+
})
|
|
62
|
+
, options
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Get search metadata (available filter options)
|
|
68
|
+
* @returns The search_metadata
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* const result = await client.search.metadata();
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
async metadata(): Promise<components["schemas"]["GetSearchMetadataResponseContent"]> {
|
|
76
|
+
const response = await this.request(
|
|
77
|
+
{
|
|
78
|
+
service: "Search",
|
|
79
|
+
operation: "GetSearchMetadata",
|
|
80
|
+
resourceType: "search_metadata",
|
|
81
|
+
isMutation: false,
|
|
82
|
+
},
|
|
83
|
+
() =>
|
|
84
|
+
this.client.GET("/searches/metadata.json", {
|
|
85
|
+
})
|
|
86
|
+
);
|
|
87
|
+
return response;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Subscriptions service for the Basecamp API.
|
|
3
|
+
*
|
|
4
|
+
* @generated from OpenAPI spec - do not edit directly
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { BaseService } from "../../services/base.js";
|
|
8
|
+
import type { components } from "../schema.js";
|
|
9
|
+
|
|
10
|
+
// =============================================================================
|
|
11
|
+
// Types
|
|
12
|
+
// =============================================================================
|
|
13
|
+
|
|
14
|
+
/** Subscription entity from the Basecamp API. */
|
|
15
|
+
export type Subscription = components["schemas"]["Subscription"];
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Request parameters for update.
|
|
19
|
+
*/
|
|
20
|
+
export interface UpdateSubscriptionRequest {
|
|
21
|
+
/** Subscriptions */
|
|
22
|
+
subscriptions?: number[];
|
|
23
|
+
/** Unsubscriptions */
|
|
24
|
+
unsubscriptions?: number[];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
// =============================================================================
|
|
29
|
+
// Service
|
|
30
|
+
// =============================================================================
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Service for Subscriptions operations.
|
|
34
|
+
*/
|
|
35
|
+
export class SubscriptionsService extends BaseService {
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Get subscription information for a recording
|
|
39
|
+
* @param recordingId - The recording ID
|
|
40
|
+
* @returns The Subscription
|
|
41
|
+
* @throws {BasecampError} If the resource is not found
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* const result = await client.subscriptions.get(123);
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
async get(recordingId: number): Promise<Subscription> {
|
|
49
|
+
const response = await this.request(
|
|
50
|
+
{
|
|
51
|
+
service: "Subscriptions",
|
|
52
|
+
operation: "GetSubscription",
|
|
53
|
+
resourceType: "subscription",
|
|
54
|
+
isMutation: false,
|
|
55
|
+
resourceId: recordingId,
|
|
56
|
+
},
|
|
57
|
+
() =>
|
|
58
|
+
this.client.GET("/recordings/{recordingId}/subscription.json", {
|
|
59
|
+
params: {
|
|
60
|
+
path: { recordingId },
|
|
61
|
+
},
|
|
62
|
+
})
|
|
63
|
+
);
|
|
64
|
+
return response;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Subscribe the current user to a recording
|
|
69
|
+
* @param recordingId - The recording ID
|
|
70
|
+
* @returns The Subscription
|
|
71
|
+
* @throws {BasecampError} If the request fails
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```ts
|
|
75
|
+
* const result = await client.subscriptions.subscribe(123);
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
async subscribe(recordingId: number): Promise<Subscription> {
|
|
79
|
+
const response = await this.request(
|
|
80
|
+
{
|
|
81
|
+
service: "Subscriptions",
|
|
82
|
+
operation: "Subscribe",
|
|
83
|
+
resourceType: "resource",
|
|
84
|
+
isMutation: true,
|
|
85
|
+
resourceId: recordingId,
|
|
86
|
+
},
|
|
87
|
+
() =>
|
|
88
|
+
this.client.POST("/recordings/{recordingId}/subscription.json", {
|
|
89
|
+
params: {
|
|
90
|
+
path: { recordingId },
|
|
91
|
+
},
|
|
92
|
+
})
|
|
93
|
+
);
|
|
94
|
+
return response;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Update subscriptions by adding or removing specific users
|
|
99
|
+
* @param recordingId - The recording ID
|
|
100
|
+
* @param req - Subscription update parameters
|
|
101
|
+
* @returns The Subscription
|
|
102
|
+
* @throws {BasecampError} If the resource is not found or fields are invalid
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```ts
|
|
106
|
+
* const result = await client.subscriptions.update(123, { });
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
async update(recordingId: number, req: UpdateSubscriptionRequest): Promise<Subscription> {
|
|
110
|
+
const response = await this.request(
|
|
111
|
+
{
|
|
112
|
+
service: "Subscriptions",
|
|
113
|
+
operation: "UpdateSubscription",
|
|
114
|
+
resourceType: "subscription",
|
|
115
|
+
isMutation: true,
|
|
116
|
+
resourceId: recordingId,
|
|
117
|
+
},
|
|
118
|
+
() =>
|
|
119
|
+
this.client.PUT("/recordings/{recordingId}/subscription.json", {
|
|
120
|
+
params: {
|
|
121
|
+
path: { recordingId },
|
|
122
|
+
},
|
|
123
|
+
body: {
|
|
124
|
+
subscriptions: req.subscriptions,
|
|
125
|
+
unsubscriptions: req.unsubscriptions,
|
|
126
|
+
},
|
|
127
|
+
})
|
|
128
|
+
);
|
|
129
|
+
return response;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Unsubscribe the current user from a recording
|
|
134
|
+
* @param recordingId - The recording ID
|
|
135
|
+
* @returns void
|
|
136
|
+
* @throws {BasecampError} If the request fails
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```ts
|
|
140
|
+
* await client.subscriptions.unsubscribe(123);
|
|
141
|
+
* ```
|
|
142
|
+
*/
|
|
143
|
+
async unsubscribe(recordingId: number): Promise<void> {
|
|
144
|
+
await this.request(
|
|
145
|
+
{
|
|
146
|
+
service: "Subscriptions",
|
|
147
|
+
operation: "Unsubscribe",
|
|
148
|
+
resourceType: "resource",
|
|
149
|
+
isMutation: true,
|
|
150
|
+
resourceId: recordingId,
|
|
151
|
+
},
|
|
152
|
+
() =>
|
|
153
|
+
this.client.DELETE("/recordings/{recordingId}/subscription.json", {
|
|
154
|
+
params: {
|
|
155
|
+
path: { recordingId },
|
|
156
|
+
},
|
|
157
|
+
})
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
}
|