@icanbwell/bwell-sdk-ts 1.52.0 → 1.53.0-rc.1766074701

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/__version__.d.ts +1 -1
  2. package/dist/__version__.js +1 -1
  3. package/dist/api/base/health-space/add-care-team-member-request.d.ts +33 -0
  4. package/dist/api/base/health-space/add-care-team-member-request.js +36 -0
  5. package/dist/api/base/health-space/add-care-team-members-request.d.ts +35 -0
  6. package/dist/api/base/health-space/add-care-team-members-request.js +61 -0
  7. package/dist/api/base/health-space/health-space-manager.d.ts +86 -1
  8. package/dist/api/base/health-space/index.d.ts +4 -0
  9. package/dist/api/base/health-space/index.js +4 -0
  10. package/dist/api/base/health-space/remove-care-team-member-request.d.ts +34 -0
  11. package/dist/api/base/health-space/remove-care-team-member-request.js +36 -0
  12. package/dist/api/base/health-space/update-care-team-member-request.d.ts +55 -0
  13. package/dist/api/base/health-space/update-care-team-member-request.js +71 -0
  14. package/dist/api/base/support/create-support-request-request.d.ts +22 -0
  15. package/dist/api/base/support/create-support-request-request.js +20 -0
  16. package/dist/api/base/support/delete-support-attachment-request.d.ts +11 -0
  17. package/dist/api/base/support/delete-support-attachment-request.js +14 -0
  18. package/dist/api/base/support/index.d.ts +3 -0
  19. package/dist/api/base/support/index.js +3 -0
  20. package/dist/api/base/support/support-manager.d.ts +32 -2
  21. package/dist/api/base/support/upload-support-attachment-request.d.ts +25 -0
  22. package/dist/api/base/support/upload-support-attachment-request.js +27 -0
  23. package/dist/api/graphql-api/health-space/add-care-team-member-request-factory.d.ts +20 -0
  24. package/dist/api/graphql-api/health-space/add-care-team-member-request-factory.js +29 -0
  25. package/dist/api/graphql-api/health-space/add-care-team-members-request-factory.d.ts +16 -0
  26. package/dist/api/graphql-api/health-space/add-care-team-members-request-factory.js +23 -0
  27. package/dist/api/graphql-api/health-space/care-team-factory-utils.d.ts +23 -0
  28. package/dist/api/graphql-api/health-space/care-team-factory-utils.js +30 -0
  29. package/dist/api/graphql-api/health-space/graphql-health-space-manager.d.ts +58 -1
  30. package/dist/api/graphql-api/health-space/graphql-health-space-manager.js +131 -2
  31. package/dist/api/graphql-api/health-space/index.d.ts +4 -0
  32. package/dist/api/graphql-api/health-space/index.js +4 -0
  33. package/dist/api/graphql-api/health-space/remove-care-team-member-request-factory.d.ts +16 -0
  34. package/dist/api/graphql-api/health-space/remove-care-team-member-request-factory.js +24 -0
  35. package/dist/api/graphql-api/health-space/update-care-team-member-request-factory.d.ts +16 -0
  36. package/dist/api/graphql-api/health-space/update-care-team-member-request-factory.js +20 -0
  37. package/dist/api/graphql-api/support/create-support-request-request-factory.d.ts +6 -0
  38. package/dist/api/graphql-api/support/create-support-request-request-factory.js +19 -0
  39. package/dist/api/graphql-api/support/delete-support-attachment-request-factory.d.ts +6 -0
  40. package/dist/api/graphql-api/support/delete-support-attachment-request-factory.js +10 -0
  41. package/dist/api/graphql-api/support/graphql-support-manager.d.ts +11 -4
  42. package/dist/api/graphql-api/support/graphql-support-manager.js +79 -4
  43. package/dist/api/graphql-api/support/upload-support-attachment-request-factory.d.ts +6 -0
  44. package/dist/api/graphql-api/support/upload-support-attachment-request-factory.js +11 -0
  45. package/dist/graphql/operations/index.d.ts +64 -0
  46. package/dist/graphql/operations/index.js +94 -0
  47. package/dist/graphql/operations/types.d.ts +80 -2
  48. package/dist/graphql/schema.d.ts +105 -3
  49. package/dist/utils/date-utils.d.ts +6 -0
  50. package/dist/utils/date-utils.js +8 -0
  51. package/dist/utils/index.d.ts +1 -0
  52. package/dist/utils/index.js +1 -0
  53. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * This file is automatically generated. Please do not edit this file directly.
3
3
  */
4
- export declare const VERSION = "1.52.0";
4
+ export declare const VERSION = "1.53.0-rc.1766074701";
@@ -1,4 +1,4 @@
1
1
  /**
2
2
  * This file is automatically generated. Please do not edit this file directly.
3
3
  */
4
- export const VERSION = "1.52.0";
4
+ export const VERSION = "1.53.0-rc.1766074701";
@@ -0,0 +1,33 @@
1
+ import { ErrorsCollector, ValidationRequest } from "../../../requests/index.js";
2
+ import { UpdateCareTeamMemberInput } from "./update-care-team-member-request.js";
3
+ /**
4
+ * Input type for adding a single care team member.
5
+ */
6
+ export type AddCareTeamMemberInput = UpdateCareTeamMemberInput;
7
+ /**
8
+ * Validator class for adding a single care team member.
9
+ * This class reuses the UpdateCareTeamMemberRequestValidator validation logic with required roles.
10
+ */
11
+ declare class AddCareTeamMemberRequestValidator {
12
+ private updateValidator;
13
+ /**
14
+ * Validates the provided `AddCareTeamMemberInput` data with roles required.
15
+ *
16
+ * @param data - The input data to validate, containing member details to add.
17
+ * @param errors - An instance of `ErrorsCollector` to collect validation errors.
18
+ */
19
+ validate(data: AddCareTeamMemberInput, errors: ErrorsCollector): void;
20
+ }
21
+ /**
22
+ * Represents a request for adding a single care team member.
23
+ * This class reuses the validation logic from UpdateCareTeamMemberRequest.
24
+ *
25
+ * @extends ValidationRequest<AddCareTeamMemberInput>
26
+ * @category Requests
27
+ * @title AddCareTeamMemberRequest
28
+ * @excerpt Request class for adding a single care team member
29
+ */
30
+ export declare class AddCareTeamMemberRequest extends ValidationRequest<AddCareTeamMemberInput> {
31
+ protected validator: AddCareTeamMemberRequestValidator;
32
+ }
33
+ export {};
@@ -0,0 +1,36 @@
1
+ import { ValidationRequest } from "../../../requests/index.js";
2
+ import { UpdateCareTeamMemberRequestValidator, } from "./update-care-team-member-request.js";
3
+ /**
4
+ * Validator class for adding a single care team member.
5
+ * This class reuses the UpdateCareTeamMemberRequestValidator validation logic with required roles.
6
+ */
7
+ class AddCareTeamMemberRequestValidator {
8
+ constructor() {
9
+ this.updateValidator = new UpdateCareTeamMemberRequestValidator();
10
+ }
11
+ /**
12
+ * Validates the provided `AddCareTeamMemberInput` data with roles required.
13
+ *
14
+ * @param data - The input data to validate, containing member details to add.
15
+ * @param errors - An instance of `ErrorsCollector` to collect validation errors.
16
+ */
17
+ validate(data, errors) {
18
+ // For add operations, role is required
19
+ this.updateValidator.validate(data, errors, { requireRole: true });
20
+ }
21
+ }
22
+ /**
23
+ * Represents a request for adding a single care team member.
24
+ * This class reuses the validation logic from UpdateCareTeamMemberRequest.
25
+ *
26
+ * @extends ValidationRequest<AddCareTeamMemberInput>
27
+ * @category Requests
28
+ * @title AddCareTeamMemberRequest
29
+ * @excerpt Request class for adding a single care team member
30
+ */
31
+ export class AddCareTeamMemberRequest extends ValidationRequest {
32
+ constructor() {
33
+ super(...arguments);
34
+ this.validator = new AddCareTeamMemberRequestValidator();
35
+ }
36
+ }
@@ -0,0 +1,35 @@
1
+ import { ErrorsCollector, ValidationRequest } from "../../../requests/index.js";
2
+ import { AddCareTeamMemberInput } from "./add-care-team-member-request.js";
3
+ /**
4
+ * Input type for adding multiple care team members.
5
+ */
6
+ export type AddCareTeamMembersInput = {
7
+ /** Array of care team members to add */
8
+ members: AddCareTeamMemberInput[];
9
+ };
10
+ /**
11
+ * Validator class for adding multiple care team members.
12
+ * This class reuses the UpdateCareTeamMemberRequestValidator for each member.
13
+ */
14
+ declare class AddCareTeamMembersRequestValidator {
15
+ private updateValidator;
16
+ /**
17
+ * Validates the provided `AddCareTeamMembersInput` data by validating each member individually.
18
+ *
19
+ * @param data - The input data to validate, containing an array of members to add.
20
+ * @param errors - An instance of `ErrorsCollector` to collect validation errors.
21
+ */
22
+ validate(data: AddCareTeamMembersInput, errors: ErrorsCollector): void;
23
+ }
24
+ /**
25
+ * Represents a request for adding multiple care team members.
26
+ *
27
+ * @extends ValidationRequest<AddCareTeamMembersInput>
28
+ * @category Requests
29
+ * @title AddCareTeamMembersRequest
30
+ * @excerpt Request class for adding multiple care team members
31
+ */
32
+ export declare class AddCareTeamMembersRequest extends ValidationRequest<AddCareTeamMembersInput> {
33
+ protected validator: AddCareTeamMembersRequestValidator;
34
+ }
35
+ export {};
@@ -0,0 +1,61 @@
1
+ import { ValidationErrorsCollector, ValidationRequest, } from "../../../requests/index.js";
2
+ import { isNotNullOrUndefined } from "../../../utils/type-utils.js";
3
+ import { UpdateCareTeamMemberRequestValidator } from "./update-care-team-member-request.js";
4
+ /**
5
+ * Validator class for adding multiple care team members.
6
+ * This class reuses the UpdateCareTeamMemberRequestValidator for each member.
7
+ */
8
+ class AddCareTeamMembersRequestValidator {
9
+ constructor() {
10
+ this.updateValidator = new UpdateCareTeamMemberRequestValidator();
11
+ }
12
+ /**
13
+ * Validates the provided `AddCareTeamMembersInput` data by validating each member individually.
14
+ *
15
+ * @param data - The input data to validate, containing an array of members to add.
16
+ * @param errors - An instance of `ErrorsCollector` to collect validation errors.
17
+ */
18
+ validate(data, errors) {
19
+ // Validate members array is provided
20
+ if (!isNotNullOrUndefined(data.members)) {
21
+ errors.add("Members array is required");
22
+ return;
23
+ }
24
+ if (data.members.length === 0) {
25
+ errors.add("Members array cannot be empty");
26
+ return;
27
+ }
28
+ // Validate each member using the update validator
29
+ for (let memberIndex = 0; memberIndex < data.members.length; memberIndex++) {
30
+ const member = data.members[memberIndex];
31
+ if (!isNotNullOrUndefined(member)) {
32
+ errors.add(`Member ${memberIndex}: Cannot be null or undefined`);
33
+ continue;
34
+ }
35
+ // Create a sub-errors collector to prefix errors with member index
36
+ const memberErrors = new ValidationErrorsCollector();
37
+ // For add operations, each member must include a role
38
+ this.updateValidator.validate(member, memberErrors, {
39
+ requireRole: true,
40
+ });
41
+ // Add member-specific errors with prefix
42
+ for (const errorMessage of memberErrors.errors()) {
43
+ errors.add(`Member ${memberIndex}: ${errorMessage}`);
44
+ }
45
+ }
46
+ }
47
+ }
48
+ /**
49
+ * Represents a request for adding multiple care team members.
50
+ *
51
+ * @extends ValidationRequest<AddCareTeamMembersInput>
52
+ * @category Requests
53
+ * @title AddCareTeamMembersRequest
54
+ * @excerpt Request class for adding multiple care team members
55
+ */
56
+ export class AddCareTeamMembersRequest extends ValidationRequest {
57
+ constructor() {
58
+ super(...arguments);
59
+ this.validator = new AddCareTeamMembersRequestValidator();
60
+ }
61
+ }
@@ -1,9 +1,13 @@
1
- import { AppointmentsQueryResults, CancelAppointmentMutationResults, CancelationReasonsQueryResults } from "../../../graphql/operations/types.js";
1
+ import { AddCareTeamMemberMutationResults, AddCareTeamMembersMutationResults, AppointmentsQueryResults, CancelAppointmentMutationResults, CancelationReasonsQueryResults, RemoveCareTeamMemberMutationResults, UpdateCareTeamMemberMutationResults } from "../../../graphql/operations/types.js";
2
2
  import { BWellQueryResult, BWellTransactionResult } from "../../../results/index.js";
3
3
  import { BaseManagerError } from "../errors.js";
4
+ import { AddCareTeamMemberRequest } from "./add-care-team-member-request.js";
5
+ import { AddCareTeamMembersRequest } from "./add-care-team-members-request.js";
4
6
  import { AppointmentsRequest } from "./appointments-request.js";
5
7
  import { CancelAppointmentRequest } from "./cancel-appointment-request.js";
6
8
  import { CancelationReasonsRequest } from "./cancelationReasons-request.js";
9
+ import { RemoveCareTeamMemberRequest } from "./remove-care-team-member-request.js";
10
+ import { UpdateCareTeamMemberRequest } from "./update-care-team-member-request.js";
7
11
  export type AppointmentsResults = AppointmentsQueryResults["appointments"];
8
12
  export type CancelAppointmentResults = CancelAppointmentMutationResults["updateAppointment"];
9
13
  export type CancelationReasonsResults = CancelationReasonsQueryResults["cancelationReasons"];
@@ -35,4 +39,85 @@ export interface HealthSpaceManager {
35
39
  * or an error of type `BaseManagerError`.
36
40
  */
37
41
  getCancelationReasons(request: CancelationReasonsRequest): Promise<BWellQueryResult<CancelationReasonsResults, BaseManagerError>>;
42
+ /**
43
+ * Adds a single care team member to a care team.
44
+ *
45
+ * @param request - AddCareTeamMemberRequest with id, type, and role (string array)
46
+ * @returns Promise resolving to mutation result with updated CareTeam resource
47
+ *
48
+ * @example
49
+ * ```typescript
50
+ * const result = await sdk.healthSpace.addCareTeamMember(
51
+ * new AddCareTeamMemberRequest({
52
+ * id: "practitioner-123",
53
+ * type: "Practitioner",
54
+ * role: ["Primary care physician"]
55
+ * })
56
+ * );
57
+ * ```
58
+ */
59
+ addCareTeamMember(request: AddCareTeamMemberRequest): Promise<BWellTransactionResult<AddCareTeamMemberMutationResults, BaseManagerError>>;
60
+ /**
61
+ * Adds multiple care team members in a single operation.
62
+ *
63
+ * @param request - AddCareTeamMembersRequest with members array (each with id, type, and role)
64
+ * @returns Promise resolving to array of mutation results with updated CareTeam resources
65
+ *
66
+ * @example
67
+ * ```typescript
68
+ * const result = await sdk.healthSpace.addCareTeamMembers(
69
+ * new AddCareTeamMembersRequest({
70
+ * members: [
71
+ * {
72
+ * id: "practitioner-123",
73
+ * type: "Practitioner",
74
+ * role: ["Primary care physician"]
75
+ * },
76
+ * {
77
+ * id: "nurse-456",
78
+ * type: "Practitioner",
79
+ * role: ["Registered Nurse"]
80
+ * }
81
+ * ]
82
+ * })
83
+ * );
84
+ * ```
85
+ */
86
+ addCareTeamMembers(request: AddCareTeamMembersRequest): Promise<BWellTransactionResult<AddCareTeamMembersMutationResults, BaseManagerError>>;
87
+ /**
88
+ * Removes a care team member from a care team.
89
+ *
90
+ * @param request - RemoveCareTeamMemberRequest with id and type
91
+ * @returns Promise resolving to mutation result with updated CareTeam resource
92
+ *
93
+ * @example
94
+ * ```typescript
95
+ * const result = await sdk.healthSpace.removeCareTeamMember(
96
+ * new RemoveCareTeamMemberRequest({
97
+ * id: "practitioner-123",
98
+ * type: "Practitioner",
99
+ * })
100
+ * );
101
+ * ```
102
+ */
103
+ removeCareTeamMember(request: RemoveCareTeamMemberRequest): Promise<BWellTransactionResult<RemoveCareTeamMemberMutationResults, BaseManagerError>>;
104
+ /**
105
+ * This operation overwrites the member's role(s) with the provided value(s).
106
+ * If you need to preserve existing roles, include them in the role here.
107
+ *
108
+ * @param request - UpdateCareTeamMemberRequest with id, type, and role (string array)
109
+ * @returns Promise resolving to mutation result with updated CareTeam resource
110
+ *
111
+ * @example
112
+ * ```typescript
113
+ * const result = await sdk.healthSpace.updateCareTeamMember(
114
+ * new UpdateCareTeamMemberRequest({
115
+ * id: "practitioner-123",
116
+ * type: "Practitioner",
117
+ * role: ["Specialist"] // overwrites existing role(s)
118
+ * })
119
+ * );
120
+ * ```
121
+ */
122
+ updateCareTeamMember(request: UpdateCareTeamMemberRequest): Promise<BWellTransactionResult<UpdateCareTeamMemberMutationResults, BaseManagerError>>;
38
123
  }
@@ -2,3 +2,7 @@ export { AppointmentsResults, CancelAppointmentResults, HealthSpaceManager, Canc
2
2
  export { AppointmentsRequest, AppointmentsRequestInput, } from "./appointments-request.js";
3
3
  export { CancelAppointmentRequest, CancelAppointmentRequestInput, } from "./cancel-appointment-request.js";
4
4
  export { CancelationReasonsRequest, CancelationReasonsRequestInput, } from "./cancelationReasons-request.js";
5
+ export { RemoveCareTeamMemberRequest, RemoveCareTeamMemberInput, } from "./remove-care-team-member-request.js";
6
+ export { AddCareTeamMemberInput, AddCareTeamMemberRequest, } from "./add-care-team-member-request.js";
7
+ export { AddCareTeamMembersRequest, AddCareTeamMembersInput, } from "./add-care-team-members-request.js";
8
+ export { UpdateCareTeamMemberRequest, UpdateCareTeamMemberInput, UpdateCareTeamMemberType, } from "./update-care-team-member-request.js";
@@ -1,3 +1,7 @@
1
1
  export { AppointmentsRequest, } from "./appointments-request.js";
2
2
  export { CancelAppointmentRequest, } from "./cancel-appointment-request.js";
3
3
  export { CancelationReasonsRequest, } from "./cancelationReasons-request.js";
4
+ export { RemoveCareTeamMemberRequest, } from "./remove-care-team-member-request.js";
5
+ export { AddCareTeamMemberRequest, } from "./add-care-team-member-request.js";
6
+ export { AddCareTeamMembersRequest, } from "./add-care-team-members-request.js";
7
+ export { UpdateCareTeamMemberRequest, } from "./update-care-team-member-request.js";
@@ -0,0 +1,34 @@
1
+ import { ErrorsCollector, ValidationRequest } from "../../../requests/index.js";
2
+ import { UpdateCareTeamMemberInput } from "./update-care-team-member-request.js";
3
+ /**
4
+ * Input type for removing care team members.
5
+ * Same structure as UpdateCareTeamMemberInput since we only need id, type, and role to identify the member.
6
+ */
7
+ export type RemoveCareTeamMemberInput = UpdateCareTeamMemberInput;
8
+ /**
9
+ * Validator class for removing a single care team member.
10
+ * This class reuses the UpdateCareTeamMemberRequestValidator validation logic with optional roles.
11
+ */
12
+ declare class RemoveCareTeamMemberRequestValidator {
13
+ private updateValidator;
14
+ /**
15
+ * Validates the provided `RemoveCareTeamMemberInput` data with roles optional.
16
+ *
17
+ * @param data - The input data to validate, containing member details to remove.
18
+ * @param errors - An instance of `ErrorsCollector` to collect validation errors.
19
+ */
20
+ validate(data: RemoveCareTeamMemberInput, errors: ErrorsCollector): void;
21
+ }
22
+ /**
23
+ * Represents a request for removing a single care team member.
24
+ * This class reuses the validation logic from UpdateCareTeamMemberRequest.
25
+ *
26
+ * @extends ValidationRequest<RemoveCareTeamMemberInput>
27
+ * @category Requests
28
+ * @title RemoveCareTeamMemberRequest
29
+ * @excerpt Request class for removing a single care team member
30
+ */
31
+ export declare class RemoveCareTeamMemberRequest extends ValidationRequest<RemoveCareTeamMemberInput> {
32
+ protected validator: RemoveCareTeamMemberRequestValidator;
33
+ }
34
+ export {};
@@ -0,0 +1,36 @@
1
+ import { ValidationRequest } from "../../../requests/index.js";
2
+ import { UpdateCareTeamMemberRequestValidator, } from "./update-care-team-member-request.js";
3
+ /**
4
+ * Validator class for removing a single care team member.
5
+ * This class reuses the UpdateCareTeamMemberRequestValidator validation logic with optional roles.
6
+ */
7
+ class RemoveCareTeamMemberRequestValidator {
8
+ constructor() {
9
+ this.updateValidator = new UpdateCareTeamMemberRequestValidator();
10
+ }
11
+ /**
12
+ * Validates the provided `RemoveCareTeamMemberInput` data with roles optional.
13
+ *
14
+ * @param data - The input data to validate, containing member details to remove.
15
+ * @param errors - An instance of `ErrorsCollector` to collect validation errors.
16
+ */
17
+ validate(data, errors) {
18
+ // Delegate to the update validator with requireRole: false for remove operations
19
+ this.updateValidator.validate(data, errors, { requireRole: false });
20
+ }
21
+ }
22
+ /**
23
+ * Represents a request for removing a single care team member.
24
+ * This class reuses the validation logic from UpdateCareTeamMemberRequest.
25
+ *
26
+ * @extends ValidationRequest<RemoveCareTeamMemberInput>
27
+ * @category Requests
28
+ * @title RemoveCareTeamMemberRequest
29
+ * @excerpt Request class for removing a single care team member
30
+ */
31
+ export class RemoveCareTeamMemberRequest extends ValidationRequest {
32
+ constructor() {
33
+ super(...arguments);
34
+ this.validator = new RemoveCareTeamMemberRequestValidator();
35
+ }
36
+ }
@@ -0,0 +1,55 @@
1
+ import { CodeableConceptFieldsFragment } from "../../../graphql/operations/types.js";
2
+ import { ErrorsCollector, ValidationRequest } from "../../../requests/index.js";
3
+ /**
4
+ * Supported care team member types based on FHIR resource types.
5
+ */
6
+ export type UpdateCareTeamMemberType = "Practitioner" | "PractitionerRole" | "Patient" | "RelatedPerson" | "Organization" | "CareTeam";
7
+ /**
8
+ * FHIR CodeableConcept structure for roles (using GraphQL generated types)
9
+ */
10
+ export type CodeableConcept = CodeableConceptFieldsFragment;
11
+ /**
12
+ * Input type for updating a single care team member.
13
+ * role in the input is expected to be a list of strings (e.g. ["Primary care physician"]).
14
+ */
15
+ export type UpdateCareTeamMemberInput = {
16
+ /** Resource ID of the care team member */
17
+ id: string;
18
+ /** FHIR resource type of the member */
19
+ type: UpdateCareTeamMemberType;
20
+ /** Array of role strings (preferred) */
21
+ role?: string[];
22
+ };
23
+ /**
24
+ * Shared validator class for care team member operations.
25
+ * This class provides the core validation logic that can be reused by other request types.
26
+ */
27
+ export declare class UpdateCareTeamMemberRequestValidator {
28
+ /**
29
+ * Validates the provided `UpdateCareTeamMemberInput` data and collects any validation errors.
30
+ *
31
+ * @param data - The input data to validate, containing member details.
32
+ * @param errors - An instance of `ErrorsCollector` to collect validation errors.
33
+ * @param options - Validation options to customize behavior.
34
+ * @param options.requireRole - Whether the role field is required (default: true).
35
+ *
36
+ * @remarks
37
+ * - The `id` field is required and must be a non-empty string.
38
+ * - The `type` field is required and must be a valid UpdateCareTeamMemberType.
39
+ * - The `role` field validation depends on the `requireRole` option.
40
+ */
41
+ validate(data: UpdateCareTeamMemberInput, errors: ErrorsCollector, options?: {
42
+ requireRole?: boolean;
43
+ }): void;
44
+ }
45
+ /**
46
+ * Represents a request for updating a single care team member.
47
+ *
48
+ * @extends ValidationRequest<UpdateCareTeamMemberInput>
49
+ * @category Requests
50
+ * @title UpdateCareTeamMemberRequest
51
+ * @excerpt Core request class for single care team member operations
52
+ */
53
+ export declare class UpdateCareTeamMemberRequest extends ValidationRequest<UpdateCareTeamMemberInput> {
54
+ protected validator: UpdateCareTeamMemberRequestValidator;
55
+ }
@@ -0,0 +1,71 @@
1
+ import { ValidationRequest } from "../../../requests/index.js";
2
+ import { isBlank, isNotNullOrUndefined } from "../../../utils/index.js";
3
+ /**
4
+ * Shared validator class for care team member operations.
5
+ * This class provides the core validation logic that can be reused by other request types.
6
+ */
7
+ export class UpdateCareTeamMemberRequestValidator {
8
+ /**
9
+ * Validates the provided `UpdateCareTeamMemberInput` data and collects any validation errors.
10
+ *
11
+ * @param data - The input data to validate, containing member details.
12
+ * @param errors - An instance of `ErrorsCollector` to collect validation errors.
13
+ * @param options - Validation options to customize behavior.
14
+ * @param options.requireRole - Whether the role field is required (default: true).
15
+ *
16
+ * @remarks
17
+ * - The `id` field is required and must be a non-empty string.
18
+ * - The `type` field is required and must be a valid UpdateCareTeamMemberType.
19
+ * - The `role` field validation depends on the `requireRole` option.
20
+ */
21
+ validate(data, errors, options = {}) {
22
+ const { requireRole = true } = options;
23
+ // Validate id
24
+ if (!isNotNullOrUndefined(data.id)) {
25
+ errors.add("Member id is required");
26
+ }
27
+ else if (isBlank(data.id)) {
28
+ errors.add("Member id cannot be empty");
29
+ }
30
+ else if (data.id.length > 255) {
31
+ errors.add("Member id cannot exceed 255 characters");
32
+ }
33
+ // Validate type
34
+ if (!isNotNullOrUndefined(data.type)) {
35
+ errors.add("Member type is required");
36
+ }
37
+ else if (isBlank(data.type)) {
38
+ errors.add("Member type cannot be empty");
39
+ }
40
+ // Validate role (must be array of non-blank strings when required or provided)
41
+ const roleProvided = isNotNullOrUndefined(data.role);
42
+ if (requireRole && !roleProvided) {
43
+ errors.add("Member role is required");
44
+ }
45
+ if (roleProvided && data.role) {
46
+ for (let roleIndex = 0; roleIndex < data.role.length; roleIndex++) {
47
+ const roleItem = data.role[roleIndex];
48
+ if (!isNotNullOrUndefined(roleItem)) {
49
+ errors.add(`Role ${roleIndex}: Cannot be null or undefined`);
50
+ }
51
+ else if (isBlank(roleItem)) {
52
+ errors.add(`Role ${roleIndex}: Cannot be blank`);
53
+ }
54
+ }
55
+ }
56
+ }
57
+ }
58
+ /**
59
+ * Represents a request for updating a single care team member.
60
+ *
61
+ * @extends ValidationRequest<UpdateCareTeamMemberInput>
62
+ * @category Requests
63
+ * @title UpdateCareTeamMemberRequest
64
+ * @excerpt Core request class for single care team member operations
65
+ */
66
+ export class UpdateCareTeamMemberRequest extends ValidationRequest {
67
+ constructor() {
68
+ super(...arguments);
69
+ this.validator = new UpdateCareTeamMemberRequestValidator();
70
+ }
71
+ }
@@ -0,0 +1,22 @@
1
+ import { ErrorsCollector, ValidationRequest, Validator } from "../../../requests/index.js";
2
+ export type CommentInput = {
3
+ body: string;
4
+ uploads?: string[];
5
+ };
6
+ export type SupportRequestFieldsInput = {
7
+ category: string;
8
+ };
9
+ export type CreateSupportRequestRequestInput = {
10
+ comment: CommentInput;
11
+ email?: string;
12
+ fields: SupportRequestFieldsInput;
13
+ name?: string;
14
+ subject: string;
15
+ };
16
+ declare class CreateSupportRequestRequestValidator implements Validator<CreateSupportRequestRequestInput> {
17
+ validate(data: CreateSupportRequestRequestInput, errors: ErrorsCollector): void;
18
+ }
19
+ export declare class CreateSupportRequestRequest extends ValidationRequest<CreateSupportRequestRequestInput> {
20
+ protected validator: CreateSupportRequestRequestValidator;
21
+ }
22
+ export {};
@@ -0,0 +1,20 @@
1
+ import { ValidationRequest, } from "../../../requests/index.js";
2
+ class CreateSupportRequestRequestValidator {
3
+ validate(data, errors) {
4
+ if (!data.subject.trim()) {
5
+ errors.add("Subject is required");
6
+ }
7
+ if (!data.comment.body.trim()) {
8
+ errors.add("Comment body is required");
9
+ }
10
+ if (!data.fields.category.trim()) {
11
+ errors.add("Category is required");
12
+ }
13
+ }
14
+ }
15
+ export class CreateSupportRequestRequest extends ValidationRequest {
16
+ constructor() {
17
+ super(...arguments);
18
+ this.validator = new CreateSupportRequestRequestValidator();
19
+ }
20
+ }
@@ -0,0 +1,11 @@
1
+ import { ErrorsCollector, ValidationRequest, Validator } from "../../../requests/index.js";
2
+ export type DeleteSupportAttachmentRequestInput = {
3
+ attachmentId: string;
4
+ };
5
+ declare class DeleteSupportAttachmentRequestValidator implements Validator<DeleteSupportAttachmentRequestInput> {
6
+ validate(data: DeleteSupportAttachmentRequestInput, errors: ErrorsCollector): void;
7
+ }
8
+ export declare class DeleteSupportAttachmentRequest extends ValidationRequest<DeleteSupportAttachmentRequestInput> {
9
+ protected validator: DeleteSupportAttachmentRequestValidator;
10
+ }
11
+ export {};
@@ -0,0 +1,14 @@
1
+ import { ValidationRequest, } from "../../../requests/index.js";
2
+ class DeleteSupportAttachmentRequestValidator {
3
+ validate(data, errors) {
4
+ if (!data.attachmentId.trim()) {
5
+ errors.add("Attachment ID is required");
6
+ }
7
+ }
8
+ }
9
+ export class DeleteSupportAttachmentRequest extends ValidationRequest {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.validator = new DeleteSupportAttachmentRequestValidator();
13
+ }
14
+ }
@@ -1,2 +1,5 @@
1
1
  export * from "./support-manager.js";
2
2
  export * from "./get-support-requests-request.js";
3
+ export * from "./upload-support-attachment-request.js";
4
+ export * from "./delete-support-attachment-request.js";
5
+ export * from "./create-support-request-request.js";
@@ -1,2 +1,5 @@
1
1
  export * from "./support-manager.js";
2
2
  export * from "./get-support-requests-request.js";
3
+ export * from "./upload-support-attachment-request.js";
4
+ export * from "./delete-support-attachment-request.js";
5
+ export * from "./create-support-request-request.js";
@@ -1,8 +1,15 @@
1
- import type { GetSupportRequestsQueryResults } from "../../../graphql/operations/types.js";
2
- import type { BWellQueryResult } from "../../../results/index.js";
1
+ import type { CreateSupportRequestMutationResults, DeleteSupportAttachmentMutationResults, GetSupportCategoriesQueryResults, GetSupportRequestsQueryResults, UploadSupportAttachmentMutationResults } from "../../../graphql/operations/types.js";
2
+ import type { BWellQueryResult, BWellTransactionResult } from "../../../results/index.js";
3
3
  import type { BaseManagerError } from "../errors.js";
4
+ import { CreateSupportRequestRequest } from "./create-support-request-request.js";
5
+ import { DeleteSupportAttachmentRequest } from "./delete-support-attachment-request.js";
4
6
  import { GetSupportRequestsRequest } from "./get-support-requests-request.js";
7
+ import { UploadSupportAttachmentRequest } from "./upload-support-attachment-request.js";
5
8
  export type GetSupportRequestsResults = GetSupportRequestsQueryResults["getSupportRequests"];
9
+ export type UploadSupportAttachmentResults = UploadSupportAttachmentMutationResults["uploadSupportAttachment"];
10
+ export type DeleteSupportAttachmentResults = DeleteSupportAttachmentMutationResults["deleteSupportAttachment"];
11
+ export type CreateSupportRequestResults = CreateSupportRequestMutationResults["createSupportRequest"];
12
+ export type GetSupportCategoriesResults = GetSupportCategoriesQueryResults["getSupportCategories"];
6
13
  /**
7
14
  * The SupportManager interface provides methods for managing support requests.
8
15
  */
@@ -13,4 +20,27 @@ export interface SupportManager {
13
20
  * @returns A promise that resolves to a query result with the support requests data.
14
21
  */
15
22
  getSupportRequests(request: GetSupportRequestsRequest): Promise<BWellQueryResult<GetSupportRequestsResults, BaseManagerError>>;
23
+ /**
24
+ * Uploads an attachment for a support request.
25
+ * @param request The request containing the file content as a data URI (data:<MIME-type>;base64,<base64-data>) and file name.
26
+ * @returns A promise that resolves to a transaction result with the uploaded attachment data.
27
+ */
28
+ uploadSupportAttachment(request: UploadSupportAttachmentRequest): Promise<BWellTransactionResult<UploadSupportAttachmentResults, BaseManagerError>>;
29
+ /**
30
+ * Deletes an attachment from a support request.
31
+ * @param request The request containing the attachment ID to delete.
32
+ * @returns A promise that resolves to a transaction result with the deletion status.
33
+ */
34
+ deleteSupportAttachment(request: DeleteSupportAttachmentRequest): Promise<BWellTransactionResult<DeleteSupportAttachmentResults, BaseManagerError>>;
35
+ /**
36
+ * Creates a new support request.
37
+ * @param request The request containing the support request details (subject, comment, category, etc.).
38
+ * @returns A promise that resolves to a transaction result with the created support request data.
39
+ */
40
+ createSupportRequest(request: CreateSupportRequestRequest): Promise<BWellTransactionResult<CreateSupportRequestResults, BaseManagerError>>;
41
+ /**
42
+ * Retrieves available support request categories.
43
+ * @returns A promise that resolves to a query result with the list of support categories.
44
+ */
45
+ getSupportCategories(): Promise<BWellQueryResult<GetSupportCategoriesResults, BaseManagerError>>;
16
46
  }