@t4h.framework/amber 0.0.0-experimental-01c70b0-77b082585b6c1296caac
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 +114 -0
- package/dist/activities/AbstractAmberHttpRequestActivity.d.ts +12 -0
- package/dist/activities/AbstractAmberHttpRequestActivity.d.ts.map +1 -0
- package/dist/activities/AbstractAmberHttpRequestActivity.js +21 -0
- package/dist/activities/AbstractAmberHttpRequestActivity.js.map +1 -0
- package/dist/activities/AmberCommentTicketActivity.d.ts +13 -0
- package/dist/activities/AmberCommentTicketActivity.d.ts.map +1 -0
- package/dist/activities/AmberCommentTicketActivity.js +22 -0
- package/dist/activities/AmberCommentTicketActivity.js.map +1 -0
- package/dist/activities/AmberCreateTicketActivity.d.ts +15 -0
- package/dist/activities/AmberCreateTicketActivity.d.ts.map +1 -0
- package/dist/activities/AmberCreateTicketActivity.js +53 -0
- package/dist/activities/AmberCreateTicketActivity.js.map +1 -0
- package/dist/activities/AmberGetTicketActivity.d.ts +12 -0
- package/dist/activities/AmberGetTicketActivity.d.ts.map +1 -0
- package/dist/activities/AmberGetTicketActivity.js +30 -0
- package/dist/activities/AmberGetTicketActivity.js.map +1 -0
- package/dist/activities/AmberInteractTicketActivity.d.ts +13 -0
- package/dist/activities/AmberInteractTicketActivity.d.ts.map +1 -0
- package/dist/activities/AmberInteractTicketActivity.js +23 -0
- package/dist/activities/AmberInteractTicketActivity.js.map +1 -0
- package/dist/activities/AmberTabulateTicketActivity.d.ts +13 -0
- package/dist/activities/AmberTabulateTicketActivity.d.ts.map +1 -0
- package/dist/activities/AmberTabulateTicketActivity.js +22 -0
- package/dist/activities/AmberTabulateTicketActivity.js.map +1 -0
- package/dist/activities/AmberTransferTicketActivity.d.ts +77 -0
- package/dist/activities/AmberTransferTicketActivity.d.ts.map +1 -0
- package/dist/activities/AmberTransferTicketActivity.js +113 -0
- package/dist/activities/AmberTransferTicketActivity.js.map +1 -0
- package/dist/activities/AmberUpdateTicketActivity.d.ts +13 -0
- package/dist/activities/AmberUpdateTicketActivity.d.ts.map +1 -0
- package/dist/activities/AmberUpdateTicketActivity.js +22 -0
- package/dist/activities/AmberUpdateTicketActivity.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/models/Amber.d.ts +16 -0
- package/dist/models/Amber.d.ts.map +1 -0
- package/dist/models/Amber.js +42 -0
- package/dist/models/Amber.js.map +1 -0
- package/dist/models/AmberConnection.d.ts +7 -0
- package/dist/models/AmberConnection.d.ts.map +1 -0
- package/dist/models/AmberConnection.js +11 -0
- package/dist/models/AmberConnection.js.map +1 -0
- package/dist/models/Ticket.d.ts +25 -0
- package/dist/models/Ticket.d.ts.map +1 -0
- package/dist/models/Ticket.js +91 -0
- package/dist/models/Ticket.js.map +1 -0
- package/dist/types/ServiceTabulate.d.ts +13 -0
- package/dist/types/ServiceTabulate.d.ts.map +1 -0
- package/dist/types/ServiceTabulate.js +2 -0
- package/dist/types/ServiceTabulate.js.map +1 -0
- package/dist/types/ServiceTicket.d.ts +45 -0
- package/dist/types/ServiceTicket.d.ts.map +1 -0
- package/dist/types/ServiceTicket.js +2 -0
- package/dist/types/ServiceTicket.js.map +1 -0
- package/dist/types/ServiceTicketComment.d.ts +6 -0
- package/dist/types/ServiceTicketComment.d.ts.map +1 -0
- package/dist/types/ServiceTicketComment.js +2 -0
- package/dist/types/ServiceTicketComment.js.map +1 -0
- package/dist/types/ServiceTicketInteraction.d.ts +24 -0
- package/dist/types/ServiceTicketInteraction.d.ts.map +1 -0
- package/dist/types/ServiceTicketInteraction.js +2 -0
- package/dist/types/ServiceTicketInteraction.js.map +1 -0
- package/dist/types/ServiceTransfer.d.ts +13 -0
- package/dist/types/ServiceTransfer.d.ts.map +1 -0
- package/dist/types/ServiceTransfer.js +2 -0
- package/dist/types/ServiceTransfer.js.map +1 -0
- package/dist/types/ServiceUpdate.d.ts +6 -0
- package/dist/types/ServiceUpdate.d.ts.map +1 -0
- package/dist/types/ServiceUpdate.js +2 -0
- package/dist/types/ServiceUpdate.js.map +1 -0
- package/package.json +50 -0
package/README.md
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# @t4h.framework/amber
|
|
2
|
+
|
|
3
|
+
Amber module for the [T4H Framework](https://github.com/tech4humans-brasil/alexandria). It provides a client for the Amber service API with support for creating and managing service tickets, using OAuth2 client credentials (LapisLazuli) for authentication.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
yarn add @t4h.framework/amber
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
**Peer dependencies:** `@t4h.framework/core`, `@t4h.framework/http`, `@t4h.framework/metadata`, `@t4h.framework/runtime-claims`, and `typebox`.
|
|
12
|
+
|
|
13
|
+
## Configuration
|
|
14
|
+
|
|
15
|
+
Create a `Amber` instance with the Amber base URL and LapisLazuli OAuth2 credentials:
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import { Amber } from '@t4h.framework/amber'
|
|
19
|
+
|
|
20
|
+
const amber = new Amber({
|
|
21
|
+
url: 'https://your-amber-api.example.com',
|
|
22
|
+
auth: {
|
|
23
|
+
tokenUrl: 'https://auth.example.com/oauth/token',
|
|
24
|
+
clientId: 'your-client-id',
|
|
25
|
+
clientSecret: 'your-client-secret',
|
|
26
|
+
tenantId: 'your-tenant-id',
|
|
27
|
+
},
|
|
28
|
+
})
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
|
|
33
|
+
### Creating a ticket
|
|
34
|
+
|
|
35
|
+
```ts
|
|
36
|
+
const ticket = await amber.createTicket({
|
|
37
|
+
input: {
|
|
38
|
+
type: 'ticket',
|
|
39
|
+
channel: 'your-channel',
|
|
40
|
+
protocol: 'protocol-id',
|
|
41
|
+
skill: 'skill-id',
|
|
42
|
+
tabulationOption: 'option-id',
|
|
43
|
+
customers: [
|
|
44
|
+
{
|
|
45
|
+
isOwner: true,
|
|
46
|
+
type: 'customer-type',
|
|
47
|
+
},
|
|
48
|
+
],
|
|
49
|
+
},
|
|
50
|
+
})
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
`createTicket` returns a `Ticket` instance you can use to perform further actions.
|
|
54
|
+
|
|
55
|
+
### Getting a ticket
|
|
56
|
+
|
|
57
|
+
```ts
|
|
58
|
+
const ticket = await amber.getTicket({ id: 'ticket-id' })
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Working with a ticket
|
|
62
|
+
|
|
63
|
+
Once you have a `Ticket` (from `createTicket` or `getTicket`), you can:
|
|
64
|
+
|
|
65
|
+
- **Comment** — add a comment to the ticket
|
|
66
|
+
- **Interact** — record a service interaction
|
|
67
|
+
- **Tabulate** — update tabulation data
|
|
68
|
+
- **Transfer** — transfer the ticket
|
|
69
|
+
- **Update** — update ticket fields
|
|
70
|
+
- **Finish** — set the ticket status to finished
|
|
71
|
+
|
|
72
|
+
```ts
|
|
73
|
+
await ticket.comment({ input: { body: 'Comment text' } })
|
|
74
|
+
await ticket.interact({
|
|
75
|
+
input: {
|
|
76
|
+
/* interaction data */
|
|
77
|
+
},
|
|
78
|
+
})
|
|
79
|
+
await ticket.tabulate({
|
|
80
|
+
input: {
|
|
81
|
+
/* tabulation data */
|
|
82
|
+
},
|
|
83
|
+
})
|
|
84
|
+
await ticket.transfer({
|
|
85
|
+
input: {
|
|
86
|
+
/* transfer data */
|
|
87
|
+
},
|
|
88
|
+
})
|
|
89
|
+
await ticket.update({ input: { status: 'in-attendance' } })
|
|
90
|
+
await ticket.finish()
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
## Activities
|
|
94
|
+
|
|
95
|
+
The package also exports individual activities for use within T4H workflows:
|
|
96
|
+
|
|
97
|
+
- `AmberCreateTicketActivity`
|
|
98
|
+
- `AmberGetTicketActivity`
|
|
99
|
+
- `AmberCommentTicketActivity`
|
|
100
|
+
- `AmberInteractTicketActivity`
|
|
101
|
+
- `AmberTabulateTicketActivity`
|
|
102
|
+
- `AmberTransferTicketActivity`
|
|
103
|
+
- `AmberUpdateTicketActivity`
|
|
104
|
+
|
|
105
|
+
These are used internally by `Amber` and `Ticket`; use the `Amber`/`Ticket` API unless you need to plug activities directly into your workflow.
|
|
106
|
+
|
|
107
|
+
## Requirements
|
|
108
|
+
|
|
109
|
+
- **Node.js** ≥ 22
|
|
110
|
+
- T4H Framework peer packages
|
|
111
|
+
|
|
112
|
+
## License
|
|
113
|
+
|
|
114
|
+
MIT © [Tech4Humans](https://tech4h.com.br)
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AbstractHttpRequestActivity, type HttpRequestActivityInput, type HttpRequestActivityOutput } from '@t4h.framework/http';
|
|
2
|
+
export type AmberHttpRequestActivityInput = HttpRequestActivityInput & {
|
|
3
|
+
auth: {
|
|
4
|
+
username: string;
|
|
5
|
+
password: string;
|
|
6
|
+
};
|
|
7
|
+
};
|
|
8
|
+
export declare abstract class AbstractAmberHttpRequestActivity<TArgs extends readonly any[], TInput extends AmberHttpRequestActivityInput, TOutput = any> extends AbstractHttpRequestActivity<TArgs, TInput, HttpRequestActivityOutput, TOutput> {
|
|
9
|
+
protected toHttpInput(input: AmberHttpRequestActivityInput): HttpRequestActivityInput;
|
|
10
|
+
protected toHttpOutput(output: HttpRequestActivityOutput): HttpRequestActivityOutput;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=AbstractAmberHttpRequestActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractAmberHttpRequestActivity.d.ts","sourceRoot":"","sources":["../../src/activities/AbstractAmberHttpRequestActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,KAAK,wBAAwB,EAC7B,KAAK,yBAAyB,EAC/B,MAAM,qBAAqB,CAAA;AAE5B,MAAM,MAAM,6BAA6B,GAAG,wBAAwB,GAAG;IACrE,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAA;CAC7C,CAAA;AAED,8BAAsB,gCAAgC,CACpD,KAAK,SAAS,SAAS,GAAG,EAAE,EAC5B,MAAM,SAAS,6BAA6B,EAC5C,OAAO,GAAG,GAAG,CACb,SAAQ,2BAA2B,CACnC,KAAK,EACL,MAAM,EACN,yBAAyB,EACzB,OAAO,CACR;IACC,SAAS,CAAC,WAAW,CACnB,KAAK,EAAE,6BAA6B,GACnC,wBAAwB;IAgB3B,SAAS,CAAC,YAAY,CACpB,MAAM,EAAE,yBAAyB,GAChC,yBAAyB;CAG7B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { AbstractHttpRequestActivity, } from '@t4h.framework/http';
|
|
2
|
+
export class AbstractAmberHttpRequestActivity extends AbstractHttpRequestActivity {
|
|
3
|
+
toHttpInput(input) {
|
|
4
|
+
const httpInput = {
|
|
5
|
+
url: input.url,
|
|
6
|
+
headers: input.headers || {},
|
|
7
|
+
auth: input.auth,
|
|
8
|
+
};
|
|
9
|
+
if (input.method)
|
|
10
|
+
httpInput.method = input.method;
|
|
11
|
+
if (input.body)
|
|
12
|
+
httpInput.body = input.body;
|
|
13
|
+
if (input.retry)
|
|
14
|
+
httpInput.retry = input.retry;
|
|
15
|
+
return httpInput;
|
|
16
|
+
}
|
|
17
|
+
toHttpOutput(output) {
|
|
18
|
+
return output;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=AbstractAmberHttpRequestActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AbstractAmberHttpRequestActivity.js","sourceRoot":"","sources":["../../src/activities/AbstractAmberHttpRequestActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,GAG5B,MAAM,qBAAqB,CAAA;AAM5B,MAAM,OAAgB,gCAIpB,SAAQ,2BAKT;IACW,WAAW,CACnB,KAAoC;QAEpC,MAAM,SAAS,GAA6B;YAC1C,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,EAAE;YAC5B,IAAI,EAAE,KAAK,CAAC,IAAI;SACjB,CAAA;QAED,IAAI,KAAK,CAAC,MAAM;YAAE,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;QAEjD,IAAI,KAAK,CAAC,IAAI;YAAE,SAAS,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAA;QAE3C,IAAI,KAAK,CAAC,KAAK;YAAE,SAAS,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAA;QAE9C,OAAO,SAAS,CAAA;IAClB,CAAC;IAES,YAAY,CACpB,MAAiC;QAEjC,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AbstractAmberHttpRequestActivity, type AmberHttpRequestActivityInput } from './AbstractAmberHttpRequestActivity.js';
|
|
2
|
+
import type { ServiceTicketCommentInput } from '../types/ServiceTicketComment.js';
|
|
3
|
+
export type AmberCommentTicketActivityInput = Omit<AmberHttpRequestActivityInput, 'method' | 'body'> & {
|
|
4
|
+
input: ServiceTicketCommentInput;
|
|
5
|
+
id: string;
|
|
6
|
+
};
|
|
7
|
+
export declare class AmberCommentTicketActivity extends AbstractAmberHttpRequestActivity<[
|
|
8
|
+
AmberCommentTicketActivityInput
|
|
9
|
+
], AmberHttpRequestActivityInput> {
|
|
10
|
+
toInput(input: AmberCommentTicketActivityInput): AmberHttpRequestActivityInput;
|
|
11
|
+
toOutput(output: any, input: AmberCommentTicketActivityInput): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=AmberCommentTicketActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmberCommentTicketActivity.d.ts","sourceRoot":"","sources":["../../src/activities/AmberCommentTicketActivity.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gCAAgC,EAChC,KAAK,6BAA6B,EACnC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,kCAAkC,CAAA;AAEjF,MAAM,MAAM,+BAA+B,GAAG,IAAI,CAChD,6BAA6B,EAC7B,QAAQ,GAAG,MAAM,CAClB,GAAG;IACF,KAAK,EAAE,yBAAyB,CAAA;IAChC,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,qBAAa,0BAA2B,SAAQ,gCAAgC,CAC9E;IAAC,+BAA+B;CAAC,EACjC,6BAA6B,CAC9B;IACQ,OAAO,CACZ,KAAK,EAAE,+BAA+B,GACrC,6BAA6B;IASnB,QAAQ,CACnB,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,+BAA+B,GACrC,OAAO,CAAC,IAAI,CAAC;CAUjB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Response } from '@t4h.framework/http';
|
|
2
|
+
import { AbstractAmberHttpRequestActivity, } from './AbstractAmberHttpRequestActivity.js';
|
|
3
|
+
export class AmberCommentTicketActivity extends AbstractAmberHttpRequestActivity {
|
|
4
|
+
toInput(input) {
|
|
5
|
+
return {
|
|
6
|
+
...input,
|
|
7
|
+
url: `${input.url}/services/${input.id}/comments`,
|
|
8
|
+
method: 'POST',
|
|
9
|
+
body: { json: input.input },
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
async toOutput(output, input) {
|
|
13
|
+
const response = new Response(output);
|
|
14
|
+
if (response.status !== 200)
|
|
15
|
+
throw new Error(`Failed to comment on ticket ${input.id}`, {
|
|
16
|
+
cause: {
|
|
17
|
+
httpStatusCode: response.status,
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=AmberCommentTicketActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmberCommentTicketActivity.js","sourceRoot":"","sources":["../../src/activities/AmberCommentTicketActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,OAAO,EACL,gCAAgC,GAEjC,MAAM,uCAAuC,CAAA;AAW9C,MAAM,OAAO,0BAA2B,SAAQ,gCAG/C;IACQ,OAAO,CACZ,KAAsC;QAEtC,OAAO;YACL,GAAG,KAAK;YACR,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,aAAa,KAAK,CAAC,EAAE,WAAW;YACjD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE;SAC5B,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,MAAW,EACX,KAAsC;QAEtC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;QAErC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YACzB,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,EAAE,EAAE,EAAE;gBACzD,KAAK,EAAE;oBACL,cAAc,EAAE,QAAQ,CAAC,MAAM;iBAChC;aACF,CAAC,CAAA;IACN,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { AbstractAmberHttpRequestActivity, type AmberHttpRequestActivityInput } from './AbstractAmberHttpRequestActivity.js';
|
|
2
|
+
import { Ticket } from '../models/Ticket.js';
|
|
3
|
+
import type { ServiceTicketInput } from '../types/ServiceTicket.js';
|
|
4
|
+
export type AmberCreateTicketActivityInput = Omit<AmberHttpRequestActivityInput, 'method' | 'body'> & {
|
|
5
|
+
input: Omit<ServiceTicketInput, 'type' | 'channel'>;
|
|
6
|
+
channel: string;
|
|
7
|
+
};
|
|
8
|
+
export declare class AmberCreateTicketActivity extends AbstractAmberHttpRequestActivity<[
|
|
9
|
+
AmberCreateTicketActivityInput
|
|
10
|
+
], AmberHttpRequestActivityInput> {
|
|
11
|
+
private readonly claims;
|
|
12
|
+
toInput(httpInput: AmberCreateTicketActivityInput): AmberHttpRequestActivityInput;
|
|
13
|
+
toOutput(output: any, input: AmberCreateTicketActivityInput): Promise<Ticket>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=AmberCreateTicketActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmberCreateTicketActivity.d.ts","sourceRoot":"","sources":["../../src/activities/AmberCreateTicketActivity.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,gCAAgC,EAChC,KAAK,6BAA6B,EACnC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,MAAM,MAAM,8BAA8B,GAAG,IAAI,CAC/C,6BAA6B,EAC7B,QAAQ,GAAG,MAAM,CAClB,GAAG;IACF,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;IACnD,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,qBAAa,yBAA0B,SAAQ,gCAAgC,CAC7E;IAAC,8BAA8B;CAAC,EAChC,6BAA6B,CAC9B;IACC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAKrB;IAEK,OAAO,CACZ,SAAS,EAAE,8BAA8B,GACxC,6BAA6B;IAiCnB,QAAQ,CACnB,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,8BAA8B,GACpC,OAAO,CAAC,MAAM,CAAC;CAoBnB"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Claim, GetWorkflowUniqueIdentifierClaim } from '@t4h.framework/core';
|
|
2
|
+
import { Response } from '@t4h.framework/http';
|
|
3
|
+
import { GetProjectUniqueIdentifierClaim, GetProjectVersionUniqueIdentifierClaim, GetProjectVersionWorkflowUniqueIdentifierClaim, } from '@t4h.framework/runtime-claims';
|
|
4
|
+
import { AbstractAmberHttpRequestActivity, } from './AbstractAmberHttpRequestActivity.js';
|
|
5
|
+
import { Ticket } from '../models/Ticket.js';
|
|
6
|
+
export class AmberCreateTicketActivity extends AbstractAmberHttpRequestActivity {
|
|
7
|
+
claims = new Claim({
|
|
8
|
+
getProjectId: GetProjectUniqueIdentifierClaim,
|
|
9
|
+
getProjectVersionId: GetProjectVersionUniqueIdentifierClaim,
|
|
10
|
+
getProjectVersionWorkflowId: GetProjectVersionWorkflowUniqueIdentifierClaim,
|
|
11
|
+
getProjectVersionWorkflowRunId: GetWorkflowUniqueIdentifierClaim,
|
|
12
|
+
});
|
|
13
|
+
toInput(httpInput) {
|
|
14
|
+
const input = httpInput.input;
|
|
15
|
+
const project = this.claims.getProjectId.getProjectUniqueIdentifier();
|
|
16
|
+
const projectVersion = this.claims.getProjectVersionId.getProjectVersionUniqueIdentifier();
|
|
17
|
+
const projectVersionWorkflow = this.claims.getProjectVersionWorkflowId.getProjectVersionWorkflowUniqueIdentifier();
|
|
18
|
+
const projectVersionWorkflowRun = this.claims.getProjectVersionWorkflowRunId.getWorkflowUniqueIdentifier();
|
|
19
|
+
input.metadata = input.metadata || {};
|
|
20
|
+
input.type = 'ticket';
|
|
21
|
+
input.channel = httpInput.channel;
|
|
22
|
+
Object.assign(input.metadata, {
|
|
23
|
+
project,
|
|
24
|
+
projectVersion,
|
|
25
|
+
projectVersionWorkflow,
|
|
26
|
+
projectVersionWorkflowRun,
|
|
27
|
+
});
|
|
28
|
+
return {
|
|
29
|
+
...httpInput,
|
|
30
|
+
url: `${httpInput.url}/services`,
|
|
31
|
+
method: 'POST',
|
|
32
|
+
body: { form: input },
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
async toOutput(output, input) {
|
|
36
|
+
const response = new Response(output);
|
|
37
|
+
if (response.status !== 200)
|
|
38
|
+
throw new Error('Failed to create ticket', {
|
|
39
|
+
cause: {
|
|
40
|
+
httpStatusCode: response.status,
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
const data = (await response.body.json());
|
|
44
|
+
if (!data.id)
|
|
45
|
+
throw new Error('Cannot retrieve ticket id');
|
|
46
|
+
return new Ticket(data.id, {
|
|
47
|
+
clientId: input.auth.username,
|
|
48
|
+
clientSecret: input.auth.password,
|
|
49
|
+
url: input.url,
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=AmberCreateTicketActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmberCreateTicketActivity.js","sourceRoot":"","sources":["../../src/activities/AmberCreateTicketActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAA;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EACL,+BAA+B,EAC/B,sCAAsC,EACtC,8CAA8C,GAC/C,MAAM,+BAA+B,CAAA;AAEtC,OAAO,EACL,gCAAgC,GAEjC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAW5C,MAAM,OAAO,yBAA0B,SAAQ,gCAG9C;IACkB,MAAM,GAAG,IAAI,KAAK,CAAC;QAClC,YAAY,EAAE,+BAA+B;QAC7C,mBAAmB,EAAE,sCAAsC;QAC3D,2BAA2B,EAAE,8CAA8C;QAC3E,8BAA8B,EAAE,gCAAgC;KACjE,CAAC,CAAA;IAEK,OAAO,CACZ,SAAyC;QAEzC,MAAM,KAAK,GAAG,SAAS,CAAC,KAA2B,CAAA;QAEnD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,0BAA0B,EAAE,CAAA;QAErE,MAAM,cAAc,GAClB,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,iCAAiC,EAAE,CAAA;QAErE,MAAM,sBAAsB,GAC1B,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,yCAAyC,EAAE,CAAA;QAErF,MAAM,yBAAyB,GAC7B,IAAI,CAAC,MAAM,CAAC,8BAA8B,CAAC,2BAA2B,EAAE,CAAA;QAE1E,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAA;QACrC,KAAK,CAAC,IAAI,GAAG,QAAQ,CAAA;QACrB,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC,OAAO,CAAA;QAEjC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC5B,OAAO;YACP,cAAc;YACd,sBAAsB;YACtB,yBAAyB;SAC1B,CAAC,CAAA;QAEF,OAAO;YACL,GAAG,SAAS;YACZ,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,WAAW;YAChC,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;SACtB,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,MAAW,EACX,KAAqC;QAErC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;QAErC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YACzB,MAAM,IAAI,KAAK,CAAC,yBAAyB,EAAE;gBACzC,KAAK,EAAE;oBACL,cAAc,EAAE,QAAQ,CAAC,MAAM;iBAChC;aACF,CAAC,CAAA;QAEJ,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAoB,CAAA;QAE5D,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAE1D,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE;YACzB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ;YAC7B,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ;YACjC,GAAG,EAAE,KAAK,CAAC,GAAG;SACf,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AbstractAmberHttpRequestActivity, type AmberHttpRequestActivityInput } from './AbstractAmberHttpRequestActivity.js';
|
|
2
|
+
import { Ticket } from '../models/Ticket.js';
|
|
3
|
+
export type AmberGetTicketActivityInput = Omit<AmberHttpRequestActivityInput, 'method' | 'body'> & {
|
|
4
|
+
id: string;
|
|
5
|
+
};
|
|
6
|
+
export declare class AmberGetTicketActivity extends AbstractAmberHttpRequestActivity<[
|
|
7
|
+
AmberGetTicketActivityInput
|
|
8
|
+
], AmberHttpRequestActivityInput> {
|
|
9
|
+
toInput(input: AmberGetTicketActivityInput): AmberHttpRequestActivityInput;
|
|
10
|
+
toOutput(output: any, input: AmberGetTicketActivityInput): Promise<Ticket>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=AmberGetTicketActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmberGetTicketActivity.d.ts","sourceRoot":"","sources":["../../src/activities/AmberGetTicketActivity.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gCAAgC,EAChC,KAAK,6BAA6B,EACnC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAE5C,MAAM,MAAM,2BAA2B,GAAG,IAAI,CAC5C,6BAA6B,EAC7B,QAAQ,GAAG,MAAM,CAClB,GAAG;IACF,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,qBAAa,sBAAuB,SAAQ,gCAAgC,CAC1E;IAAC,2BAA2B;CAAC,EAC7B,6BAA6B,CAC9B;IACQ,OAAO,CACZ,KAAK,EAAE,2BAA2B,GACjC,6BAA6B;IAQnB,QAAQ,CACnB,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,2BAA2B,GACjC,OAAO,CAAC,MAAM,CAAC;CAoBnB"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Response } from '@t4h.framework/http';
|
|
2
|
+
import { AbstractAmberHttpRequestActivity, } from './AbstractAmberHttpRequestActivity.js';
|
|
3
|
+
import { Ticket } from '../models/Ticket.js';
|
|
4
|
+
export class AmberGetTicketActivity extends AbstractAmberHttpRequestActivity {
|
|
5
|
+
toInput(input) {
|
|
6
|
+
return {
|
|
7
|
+
...input,
|
|
8
|
+
url: `${input.url}/services/${input.id}`,
|
|
9
|
+
method: 'GET',
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
async toOutput(output, input) {
|
|
13
|
+
const response = new Response(output);
|
|
14
|
+
if (response.status !== 200)
|
|
15
|
+
throw new Error(`Failed to get ticket ${input.id}`, {
|
|
16
|
+
cause: {
|
|
17
|
+
httpStatusCode: response.status,
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
const data = (await response.body.json());
|
|
21
|
+
if (!data.id)
|
|
22
|
+
throw new Error('Cannot retrieve ticket id');
|
|
23
|
+
return new Ticket(data.id, {
|
|
24
|
+
clientId: input.auth.username,
|
|
25
|
+
clientSecret: input.auth.password,
|
|
26
|
+
url: input.url,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=AmberGetTicketActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmberGetTicketActivity.js","sourceRoot":"","sources":["../../src/activities/AmberGetTicketActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,OAAO,EACL,gCAAgC,GAEjC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAS5C,MAAM,OAAO,sBAAuB,SAAQ,gCAG3C;IACQ,OAAO,CACZ,KAAkC;QAElC,OAAO;YACL,GAAG,KAAK;YACR,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,aAAa,KAAK,CAAC,EAAE,EAAE;YACxC,MAAM,EAAE,KAAK;SACd,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,MAAW,EACX,KAAkC;QAElC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;QAErC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YACzB,MAAM,IAAI,KAAK,CAAC,wBAAwB,KAAK,CAAC,EAAE,EAAE,EAAE;gBAClD,KAAK,EAAE;oBACL,cAAc,EAAE,QAAQ,CAAC,MAAM;iBAChC;aACF,CAAC,CAAA;QAEJ,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,CAAoB,CAAA;QAE5D,IAAI,CAAC,IAAI,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAA;QAE1D,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE;YACzB,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ;YAC7B,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ;YACjC,GAAG,EAAE,KAAK,CAAC,GAAG;SACf,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AbstractAmberHttpRequestActivity, type AmberHttpRequestActivityInput } from './AbstractAmberHttpRequestActivity.js';
|
|
2
|
+
import type { ServiceTicketInteractionInput } from '../types/ServiceTicketInteraction.js';
|
|
3
|
+
export type AmberInteractTicketActivityInput = Omit<AmberHttpRequestActivityInput, 'method' | 'body'> & {
|
|
4
|
+
input: ServiceTicketInteractionInput;
|
|
5
|
+
id: string;
|
|
6
|
+
};
|
|
7
|
+
export declare class AmberInteractTicketActivity extends AbstractAmberHttpRequestActivity<[
|
|
8
|
+
AmberInteractTicketActivityInput
|
|
9
|
+
], AmberHttpRequestActivityInput> {
|
|
10
|
+
toInput(input: AmberInteractTicketActivityInput): AmberHttpRequestActivityInput;
|
|
11
|
+
toOutput(output: any, input: AmberInteractTicketActivityInput): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=AmberInteractTicketActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmberInteractTicketActivity.d.ts","sourceRoot":"","sources":["../../src/activities/AmberInteractTicketActivity.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gCAAgC,EAChC,KAAK,6BAA6B,EACnC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,sCAAsC,CAAA;AAEzF,MAAM,MAAM,gCAAgC,GAAG,IAAI,CACjD,6BAA6B,EAC7B,QAAQ,GAAG,MAAM,CAClB,GAAG;IACF,KAAK,EAAE,6BAA6B,CAAA;IACpC,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,qBAAa,2BAA4B,SAAQ,gCAAgC,CAC/E;IAAC,gCAAgC;CAAC,EAClC,6BAA6B,CAC9B;IACQ,OAAO,CACZ,KAAK,EAAE,gCAAgC,GACtC,6BAA6B;IAUnB,QAAQ,CACnB,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,IAAI,CAAC;CAUjB"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Response } from '@t4h.framework/http';
|
|
2
|
+
import { AbstractAmberHttpRequestActivity, } from './AbstractAmberHttpRequestActivity.js';
|
|
3
|
+
export class AmberInteractTicketActivity extends AbstractAmberHttpRequestActivity {
|
|
4
|
+
toInput(input) {
|
|
5
|
+
return {
|
|
6
|
+
...input,
|
|
7
|
+
auth: input.auth,
|
|
8
|
+
url: `${input.url}/services/${input.id}/interactions`,
|
|
9
|
+
method: 'POST',
|
|
10
|
+
body: { form: input.input },
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
async toOutput(output, input) {
|
|
14
|
+
const response = new Response(output);
|
|
15
|
+
if (response.status !== 200)
|
|
16
|
+
throw new Error(`Failed to interact with ticket ${input.id}`, {
|
|
17
|
+
cause: {
|
|
18
|
+
httpStatusCode: response.status,
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=AmberInteractTicketActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmberInteractTicketActivity.js","sourceRoot":"","sources":["../../src/activities/AmberInteractTicketActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,OAAO,EACL,gCAAgC,GAEjC,MAAM,uCAAuC,CAAA;AAW9C,MAAM,OAAO,2BAA4B,SAAQ,gCAGhD;IACQ,OAAO,CACZ,KAAuC;QAEvC,OAAO;YACL,GAAG,KAAK;YACR,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,aAAa,KAAK,CAAC,EAAE,eAAe;YACrD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE;SAC5B,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,MAAW,EACX,KAAuC;QAEvC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;QAErC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YACzB,MAAM,IAAI,KAAK,CAAC,kCAAkC,KAAK,CAAC,EAAE,EAAE,EAAE;gBAC5D,KAAK,EAAE;oBACL,cAAc,EAAE,QAAQ,CAAC,MAAM;iBAChC;aACF,CAAC,CAAA;IACN,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AbstractAmberHttpRequestActivity, type AmberHttpRequestActivityInput } from './AbstractAmberHttpRequestActivity.js';
|
|
2
|
+
import type { ServiceTabulationInput } from '../types/ServiceTabulate.js';
|
|
3
|
+
export type AmberTabulateTicketActivityInput = Omit<AmberHttpRequestActivityInput, 'method' | 'body'> & {
|
|
4
|
+
input: ServiceTabulationInput;
|
|
5
|
+
id: string;
|
|
6
|
+
};
|
|
7
|
+
export declare class AmberTabulateTicketActivity extends AbstractAmberHttpRequestActivity<[
|
|
8
|
+
AmberTabulateTicketActivityInput
|
|
9
|
+
], AmberHttpRequestActivityInput> {
|
|
10
|
+
toInput(input: AmberTabulateTicketActivityInput): AmberHttpRequestActivityInput;
|
|
11
|
+
toOutput(output: any, input: AmberTabulateTicketActivityInput): Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=AmberTabulateTicketActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmberTabulateTicketActivity.d.ts","sourceRoot":"","sources":["../../src/activities/AmberTabulateTicketActivity.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,gCAAgC,EAChC,KAAK,6BAA6B,EACnC,MAAM,uCAAuC,CAAA;AAC9C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AAEzE,MAAM,MAAM,gCAAgC,GAAG,IAAI,CACjD,6BAA6B,EAC7B,QAAQ,GAAG,MAAM,CAClB,GAAG;IACF,KAAK,EAAE,sBAAsB,CAAA;IAC7B,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,qBAAa,2BAA4B,SAAQ,gCAAgC,CAC/E;IAAC,gCAAgC;CAAC,EAClC,6BAA6B,CAC9B;IACQ,OAAO,CACZ,KAAK,EAAE,gCAAgC,GACtC,6BAA6B;IASnB,QAAQ,CACnB,MAAM,EAAE,GAAG,EACX,KAAK,EAAE,gCAAgC,GACtC,OAAO,CAAC,IAAI,CAAC;CAUjB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Response } from '@t4h.framework/http';
|
|
2
|
+
import { AbstractAmberHttpRequestActivity, } from './AbstractAmberHttpRequestActivity.js';
|
|
3
|
+
export class AmberTabulateTicketActivity extends AbstractAmberHttpRequestActivity {
|
|
4
|
+
toInput(input) {
|
|
5
|
+
return {
|
|
6
|
+
...input,
|
|
7
|
+
url: `${input.url}/services/${input.id}/tabulations`,
|
|
8
|
+
method: 'POST',
|
|
9
|
+
body: { json: input.input },
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
async toOutput(output, input) {
|
|
13
|
+
const response = new Response(output);
|
|
14
|
+
if (response.status !== 200)
|
|
15
|
+
throw new Error(`Failed to tabulate ticket ${input.id}`, {
|
|
16
|
+
cause: {
|
|
17
|
+
httpStatusCode: response.status,
|
|
18
|
+
},
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=AmberTabulateTicketActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmberTabulateTicketActivity.js","sourceRoot":"","sources":["../../src/activities/AmberTabulateTicketActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,OAAO,EACL,gCAAgC,GAEjC,MAAM,uCAAuC,CAAA;AAW9C,MAAM,OAAO,2BAA4B,SAAQ,gCAGhD;IACQ,OAAO,CACZ,KAAuC;QAEvC,OAAO;YACL,GAAG,KAAK;YACR,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,aAAa,KAAK,CAAC,EAAE,cAAc;YACpD,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,KAAK,EAAE;SAC5B,CAAA;IACH,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,MAAW,EACX,KAAuC;QAEvC,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;QAErC,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG;YACzB,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,EAAE,EAAE,EAAE;gBACvD,KAAK,EAAE;oBACL,cAAc,EAAE,QAAQ,CAAC,MAAM;iBAChC;aACF,CAAC,CAAA;IACN,CAAC;CACF"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { AsyncActivity } from '@t4h.framework/core';
|
|
2
|
+
import { Type } from 'typebox';
|
|
3
|
+
import { type AmberHttpRequestActivityInput } from './AbstractAmberHttpRequestActivity.js';
|
|
4
|
+
import type { ServiceTransferInput } from '../types/ServiceTransfer.js';
|
|
5
|
+
declare const schema: Type.TObject<{
|
|
6
|
+
service: Type.TObject<{
|
|
7
|
+
id: Type.TString;
|
|
8
|
+
}>;
|
|
9
|
+
tabulation: Type.TObject<{
|
|
10
|
+
name: Type.TString;
|
|
11
|
+
tabulationOption: Type.TObject<{
|
|
12
|
+
id: Type.TString;
|
|
13
|
+
name: Type.TString;
|
|
14
|
+
}>;
|
|
15
|
+
notes: Type.TArray<Type.TObject<{
|
|
16
|
+
content: Type.TString;
|
|
17
|
+
createdAt: Type.TString;
|
|
18
|
+
type: Type.TEnum<["public", "private"]>;
|
|
19
|
+
id: Type.TString;
|
|
20
|
+
}>>;
|
|
21
|
+
}>;
|
|
22
|
+
serviceTransfer: Type.TObject<{
|
|
23
|
+
id: Type.TString;
|
|
24
|
+
skill: Type.TObject<{
|
|
25
|
+
id: Type.TString;
|
|
26
|
+
name: Type.TString;
|
|
27
|
+
}>;
|
|
28
|
+
}>;
|
|
29
|
+
}>;
|
|
30
|
+
type AmberTransferTicketActivityBootstrapOutput = {
|
|
31
|
+
serviceTransfer: string;
|
|
32
|
+
service: string;
|
|
33
|
+
};
|
|
34
|
+
type AmberTransferTicketActivityOutput = {
|
|
35
|
+
serviceTransfer: string;
|
|
36
|
+
service: string;
|
|
37
|
+
tabulationOption: string;
|
|
38
|
+
};
|
|
39
|
+
export type AmberTransferTicketActivityInput = Omit<AmberHttpRequestActivityInput, 'method' | 'body'> & {
|
|
40
|
+
input: ServiceTransferInput;
|
|
41
|
+
id: string;
|
|
42
|
+
};
|
|
43
|
+
export declare class AmberTransferTicketActivity extends AsyncActivity<[
|
|
44
|
+
AmberTransferTicketActivityInput
|
|
45
|
+
], AmberTransferTicketActivityInput, any, AmberTransferTicketActivityOutput, AmberTransferTicketActivityBootstrapOutput, typeof schema> {
|
|
46
|
+
private readonly claims;
|
|
47
|
+
bootstrap(input: AmberTransferTicketActivityInput): Promise<import("@t4h.framework/core").AsyncActivityResultPending<AmberTransferTicketActivityBootstrapOutput, Type.TObject<{
|
|
48
|
+
service: Type.TObject<{
|
|
49
|
+
id: Type.TString;
|
|
50
|
+
}>;
|
|
51
|
+
tabulation: Type.TObject<{
|
|
52
|
+
name: Type.TString;
|
|
53
|
+
tabulationOption: Type.TObject<{
|
|
54
|
+
id: Type.TString;
|
|
55
|
+
name: Type.TString;
|
|
56
|
+
}>;
|
|
57
|
+
notes: Type.TArray<Type.TObject<{
|
|
58
|
+
content: Type.TString;
|
|
59
|
+
createdAt: Type.TString;
|
|
60
|
+
type: Type.TEnum<["public", "private"]>;
|
|
61
|
+
id: Type.TString;
|
|
62
|
+
}>>;
|
|
63
|
+
}>;
|
|
64
|
+
serviceTransfer: Type.TObject<{
|
|
65
|
+
id: Type.TString;
|
|
66
|
+
skill: Type.TObject<{
|
|
67
|
+
id: Type.TString;
|
|
68
|
+
name: Type.TString;
|
|
69
|
+
}>;
|
|
70
|
+
}>;
|
|
71
|
+
}>> | import("@t4h.framework/core").AsyncActivityResultFulfilled<any> | import("@t4h.framework/core").AsyncActivityResultRejected<void | import("@t4h.framework/core").Serializable>>;
|
|
72
|
+
advance(payload: Type.Static<typeof schema>): import("@t4h.framework/core").AsyncActivityResultFulfilled<any>;
|
|
73
|
+
toInput(input: AmberTransferTicketActivityInput): AmberTransferTicketActivityInput;
|
|
74
|
+
toOutput(output: AmberTransferTicketActivityOutput): AmberTransferTicketActivityOutput;
|
|
75
|
+
}
|
|
76
|
+
export {};
|
|
77
|
+
//# sourceMappingURL=AmberTransferTicketActivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmberTransferTicketActivity.d.ts","sourceRoot":"","sources":["../../src/activities/AmberTransferTicketActivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAGd,MAAM,qBAAqB,CAAA;AAE5B,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AAE9B,OAAO,EAAE,KAAK,6BAA6B,EAAE,MAAM,uCAAuC,CAAA;AAC1F,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAEvE,QAAA,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;EAsCV,CAAA;AAEF,KAAK,0CAA0C,GAAG;IAChD,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,KAAK,iCAAiC,GAAG;IACvC,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,EAAE,MAAM,CAAA;IACf,gBAAgB,EAAE,MAAM,CAAA;CACzB,CAAA;AAED,MAAM,MAAM,gCAAgC,GAAG,IAAI,CACjD,6BAA6B,EAC7B,QAAQ,GAAG,MAAM,CAClB,GAAG;IACF,KAAK,EAAE,oBAAoB,CAAA;IAC3B,EAAE,EAAE,MAAM,CAAA;CACX,CAAA;AAED,qBAAa,2BAA4B,SAAQ,aAAa,CAC5D;IAAC,gCAAgC;CAAC,EAClC,gCAAgC,EAChC,GAAG,EACH,iCAAiC,EACjC,0CAA0C,EAC1C,OAAO,MAAM,CACd;IACC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAIrB;IAEW,SAAS,CAAC,KAAK,EAAE,gCAAgC;;;;;;;;;;;;;;;;;;;;;;;;;IA2EvD,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC;IAQ3C,OAAO,CACZ,KAAK,EAAE,gCAAgC,GACtC,gCAAgC;IAI5B,QAAQ,CACb,MAAM,EAAE,iCAAiC,GACxC,iCAAiC;CAGrC"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { Claim, AsyncActivity, GetActivityUniqueIdentifierClaim, GetWorkflowUniqueIdentifierClaim, } from '@t4h.framework/core';
|
|
2
|
+
import { HttpClientRequestClaim } from '@t4h.framework/http';
|
|
3
|
+
import { Type } from 'typebox';
|
|
4
|
+
import {} from './AbstractAmberHttpRequestActivity.js';
|
|
5
|
+
const schema = Type.Object({
|
|
6
|
+
service: Type.Object({
|
|
7
|
+
id: Type.String({
|
|
8
|
+
format: 'uuid',
|
|
9
|
+
}),
|
|
10
|
+
}),
|
|
11
|
+
tabulation: Type.Object({
|
|
12
|
+
name: Type.String(),
|
|
13
|
+
tabulationOption: Type.Object({
|
|
14
|
+
id: Type.String({
|
|
15
|
+
format: 'uuid',
|
|
16
|
+
}),
|
|
17
|
+
name: Type.String(),
|
|
18
|
+
}),
|
|
19
|
+
notes: Type.Array(Type.Object({
|
|
20
|
+
content: Type.String(),
|
|
21
|
+
createdAt: Type.String({
|
|
22
|
+
format: 'date-time',
|
|
23
|
+
}),
|
|
24
|
+
type: Type.Enum(['public', 'private']),
|
|
25
|
+
id: Type.String({
|
|
26
|
+
format: 'uuid',
|
|
27
|
+
}),
|
|
28
|
+
})),
|
|
29
|
+
}),
|
|
30
|
+
serviceTransfer: Type.Object({
|
|
31
|
+
id: Type.String({
|
|
32
|
+
format: 'uuid',
|
|
33
|
+
}),
|
|
34
|
+
skill: Type.Object({
|
|
35
|
+
id: Type.String({
|
|
36
|
+
format: 'uuid',
|
|
37
|
+
}),
|
|
38
|
+
name: Type.String(),
|
|
39
|
+
}),
|
|
40
|
+
}),
|
|
41
|
+
});
|
|
42
|
+
export class AmberTransferTicketActivity extends AsyncActivity {
|
|
43
|
+
claims = new Claim({
|
|
44
|
+
http: HttpClientRequestClaim,
|
|
45
|
+
getWorkflowId: GetWorkflowUniqueIdentifierClaim,
|
|
46
|
+
getActivityId: GetActivityUniqueIdentifierClaim,
|
|
47
|
+
});
|
|
48
|
+
async bootstrap(input) {
|
|
49
|
+
const url = new URL(`${input.url}/services/${input.id}/transfers`, input.baseUrl);
|
|
50
|
+
const activityId = this.claims.getActivityId.getActivityUniqueIdentifier();
|
|
51
|
+
const workflowId = this.claims.getWorkflowId.getWorkflowUniqueIdentifier();
|
|
52
|
+
const auth = Buffer.from(`${input.auth.username}:${input.auth.password}`).toString('base64');
|
|
53
|
+
const responseUpdateMetadata = await this.claims.http.request({
|
|
54
|
+
url: new URL(`${input.url}/services/${input.id}`, input.baseUrl),
|
|
55
|
+
method: 'PATCH',
|
|
56
|
+
body: Buffer.from(JSON.stringify({
|
|
57
|
+
metadata: {
|
|
58
|
+
[`t4h-framework:workflow-run:${workflowId}`]: activityId,
|
|
59
|
+
},
|
|
60
|
+
})),
|
|
61
|
+
headers: {
|
|
62
|
+
'Content-Type': 'application/json',
|
|
63
|
+
Authorization: `Basic ${auth}`,
|
|
64
|
+
},
|
|
65
|
+
redirect: 'follow',
|
|
66
|
+
retry: true,
|
|
67
|
+
});
|
|
68
|
+
if (responseUpdateMetadata.status !== 200)
|
|
69
|
+
return this.rejected(`Failed to update metadata for ticket ${input.id}: ${responseUpdateMetadata.status}`);
|
|
70
|
+
const response = await this.claims.http.request({
|
|
71
|
+
url,
|
|
72
|
+
method: 'POST',
|
|
73
|
+
body: Buffer.from(JSON.stringify(input.input)),
|
|
74
|
+
headers: {
|
|
75
|
+
'Content-Type': 'application/json',
|
|
76
|
+
Authorization: `Basic ${auth}`,
|
|
77
|
+
},
|
|
78
|
+
redirect: 'follow',
|
|
79
|
+
retry: true,
|
|
80
|
+
});
|
|
81
|
+
if (response.status !== 200)
|
|
82
|
+
return this.rejected(`Failed to transfer ticket ${input.id}: ${response.status}`);
|
|
83
|
+
const chunks = await response.body.toArray();
|
|
84
|
+
const buffer = Buffer.concat(chunks);
|
|
85
|
+
const data = JSON.parse(buffer.toString('utf-8'));
|
|
86
|
+
if (input.input.status === 'in-queue')
|
|
87
|
+
return this.pending({
|
|
88
|
+
output: {
|
|
89
|
+
service: input.id,
|
|
90
|
+
serviceTransfer: data.id,
|
|
91
|
+
},
|
|
92
|
+
schema,
|
|
93
|
+
});
|
|
94
|
+
return this.done({
|
|
95
|
+
service: input.id,
|
|
96
|
+
serviceTransfer: data.id,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
advance(payload) {
|
|
100
|
+
return this.done({
|
|
101
|
+
service: payload.service,
|
|
102
|
+
serviceTransfer: payload.serviceTransfer,
|
|
103
|
+
tabulationOption: payload.tabulation.tabulationOption,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
toInput(input) {
|
|
107
|
+
return input;
|
|
108
|
+
}
|
|
109
|
+
toOutput(output) {
|
|
110
|
+
return output;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
//# sourceMappingURL=AmberTransferTicketActivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AmberTransferTicketActivity.js","sourceRoot":"","sources":["../../src/activities/AmberTransferTicketActivity.ts"],"names":[],"mappings":"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"}
|