/
Integration.Connectors.ts
87 lines (78 loc) · 2.4 KB
/
Integration.Connectors.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
87
import { GenericID } from "../../common/common.types";
import TagoIOModule, { GenericModuleParams } from "../../common/TagoIOModule";
import { ConnectorCreateInfo, ConnectorInfo, ConnectorQuery } from "./integration.connectors.types";
class Connectors extends TagoIOModule<GenericModuleParams> {
/**
* Retrieves a list with all connectors from account
* @default
* ```json
* queryObj: {
* page: 1,
* fields: ["id", "name"],
* filter: {},
* amount: 20,
* orderBy: "name,asc",
* }
* ```
* @param queryObj Search query params
*/
public async list(queryObj?: ConnectorQuery): Promise<ConnectorInfo[]> {
const result = await this.doRequest<ConnectorInfo[]>({
path: "/integration/connector/",
method: "GET",
params: {
page: queryObj?.page || 1,
fields: queryObj?.fields || ["id", "name"],
filter: queryObj?.filter || {},
amount: queryObj?.amount || 20,
orderBy: queryObj?.orderBy ? `${queryObj.orderBy[0]},${queryObj.orderBy[1]}` : "name,asc",
},
});
return result;
}
/**
* Get Info of the Connector
* @param connectorID Connector identification
* @param fields Fields to fetch.
*/
public async info(connectorID: GenericID, fields?: string[]): Promise<ConnectorInfo> {
const result = await this.doRequest<ConnectorInfo>({
path: `/integration/connector/${connectorID}`,
method: "GET",
params: {
fields,
},
});
return result;
}
/**
* Generates and retrieves a new connector from the account
* @param connectorObj Object data to create new Connector
*/
public async create(connectorObj: ConnectorCreateInfo): Promise<{ connector: GenericID }> {
const result = await this.doRequest<{ connector: GenericID }>({
path: `/integration/connector/`,
method: "POST",
body: {
...connectorObj,
},
});
return result;
}
/**
* Modify any property of the connector
* @param connectorID Connector identification
* @param connectorObj Object data to create new Connector
*/
public async edit(connectorID: GenericID, connectorObj: Partial<ConnectorCreateInfo>): Promise<string> {
const result = await this.doRequest<string>({
path: `/integration/connector/${connectorID}`,
method: "PUT",
body: {
...connectorObj,
},
});
return result;
}
}
export default Connectors;