-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathevent.ts
86 lines (74 loc) · 2.52 KB
/
event.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
import { serializeQuery, toString, withRuntype } from '../../utils';
import { TripletexBase } from '../base';
import {
createSubscriptionResponseRt,
getSubscriptionResponseRt,
listSubscriptionResponseRt,
reactivateSubscriptionResponseRt,
} from './models/subscription';
import { CreateSubscriptionInput, ListSubscriptionsInput } from './types';
export * from './types';
export * from './models/subscription';
export class TripletexEvent extends TripletexBase {
getSubscription(id: number) {
const call = this.authenticatedCall() //
.args<{ id: number }>()
.path(({ id }) => `/v2/event/subscription/${id}`)
.method('get')
.parseJson(withRuntype(getSubscriptionResponseRt))
.build();
return this.performRequest(sessionToken => call({ id, sessionToken }));
}
reactivateSubscription(id: number) {
const requestBody = {
status: "ACTIVE",
}
const call = this.authenticatedCall()
.args<{ id: number }>()
.path(({ id }) => `/v2/event/subscription/${id}`)
.method('put')
.body(requestBody)
.parseJson(withRuntype(reactivateSubscriptionResponseRt))
.build();
return this.performRequest(sessionToken => call({ id, sessionToken }));
}
deleteSubscription(id: number) {
const call = this.authenticatedCall() //
.args<{ id: number }>()
.path(({ id }) => `/v2/event/subscription/${id}`)
.method('delete')
.build();
return this.performRequest(sessionToken => call({ id, sessionToken }));
}
listSubscriptions(input?: ListSubscriptionsInput) {
const call = this.authenticatedCall() //
.args<{
input?: ListSubscriptionsInput;
}>()
.path('/v2/event/subscription')
.query(args => (args.input ? serializeQuery(args.input) : {}))
.method('get')
.parseJson(withRuntype(listSubscriptionResponseRt))
.build();
return this.performRequest(sessionToken => call({ input, sessionToken }));
}
createSubscription(input: CreateSubscriptionInput) {
type Args = {
input: CreateSubscriptionInput;
};
const call = this.authenticatedCall() //
.args<Args>()
.path('/v2/event/subscription')
.body(({ input }: Args) => {
const payload: any = input;
if (input.fields) {
payload.fields = toString(input.fields);
}
return payload;
})
.method('post')
.parseJson(withRuntype(createSubscriptionResponseRt))
.build();
return this.performRequest(sessionToken => call({ input, sessionToken }));
}
}