@worknice/js-sdk 0.0.4 → 0.0.6
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/dist/{_types-BXw9D0Qi.d.ts → _types-kBsjg67t.d.ts} +57 -2
- package/dist/api/ApiError.d.ts +2 -1
- package/dist/api/ApiError.js +7 -5
- package/dist/api/ApiError.js.map +1 -1
- package/dist/api/WorkniceIntegrationLogger.d.ts +41 -17
- package/dist/api/WorkniceIntegrationLogger.js +58 -28
- package/dist/api/WorkniceIntegrationLogger.js.map +1 -1
- package/dist/api/_generated.d.ts +183 -68
- package/dist/api/_generated.js +2 -0
- package/dist/api/_generated.js.map +1 -1
- package/dist/api/_types.d.ts +2 -2
- package/dist/api/createApiOperation.d.ts +1 -1
- package/dist/api/createWorkniceClient.d.ts +1 -1
- package/dist/api/createWorkniceClient.js +2 -0
- package/dist/api/createWorkniceClient.js.map +1 -1
- package/dist/api/operations/activateIntegration.d.ts +1 -1
- package/dist/api/operations/authorizeIntegration.d.ts +1 -1
- package/dist/api/operations/completeSync.d.ts +1 -1
- package/dist/api/operations/createApiToken.d.ts +1 -1
- package/dist/api/operations/createDataImport.d.ts +1 -1
- package/dist/api/operations/createPersonConnection.d.ts +8 -1
- package/dist/api/operations/createPersonConnection.js +1 -0
- package/dist/api/operations/createPersonConnection.js.map +1 -1
- package/dist/api/operations/createPersonDataImportLine.d.ts +7 -3
- package/dist/api/operations/createPersonDataImportLine.js +10 -2
- package/dist/api/operations/createPersonDataImportLine.js.map +1 -1
- package/dist/api/operations/deleteApiToken.d.ts +1 -1
- package/dist/api/operations/deletePersonConnection.d.ts +1 -1
- package/dist/api/operations/getApiTokens.d.ts +1 -1
- package/dist/api/operations/getApiTokens.js +7 -1
- package/dist/api/operations/getApiTokens.js.map +1 -1
- package/dist/api/operations/getIntegration.d.ts +1 -1
- package/dist/api/operations/getMyApps.d.ts +37 -0
- package/dist/api/operations/getMyApps.js +62 -0
- package/dist/api/operations/getMyApps.js.map +1 -0
- package/dist/api/operations/getPeople.d.ts +1 -1
- package/dist/api/operations/getPersonConnections.d.ts +8 -1
- package/dist/api/operations/getPersonConnections.js +1 -0
- package/dist/api/operations/getPersonConnections.js.map +1 -1
- package/dist/api/operations/initializeIntegration.d.ts +1 -1
- package/dist/api/operations/updatePersonConnection.d.ts +8 -1
- package/dist/api/operations/updatePersonConnection.js +1 -0
- package/dist/api/operations/updatePersonConnection.js.map +1 -1
- package/dist/employee-records/EQUALITY_CHECKS.js +23 -11
- package/dist/employee-records/EQUALITY_CHECKS.js.map +1 -1
- package/dist/employee-records/_types.d.ts +169 -149
- package/dist/employee-records/comparePersonDataTransferLines.js +61 -13
- package/dist/employee-records/comparePersonDataTransferLines.js.map +1 -1
- package/dist/employee-records/index.d.ts +9 -6
- package/dist/employee-records/index.js +22 -14
- package/dist/employee-records/index.js.map +1 -1
- package/dist/employee-records/mergePersonDataTransferLines.js +5 -9
- package/dist/employee-records/mergePersonDataTransferLines.js.map +1 -1
- package/dist/employee-records/validatePersonDataTransferLine.js +10 -2
- package/dist/employee-records/validatePersonDataTransferLine.js.map +1 -1
- package/dist/employee-records/validatePersonDataTransferLineDateOfBirth.d.ts +6 -0
- package/dist/employee-records/validatePersonDataTransferLineDateOfBirth.js +17 -0
- package/dist/employee-records/validatePersonDataTransferLineDateOfBirth.js.map +1 -0
- package/dist/employee-records/validatePersonDataTransferLineFullName.d.ts +6 -0
- package/dist/employee-records/validatePersonDataTransferLineFullName.js +20 -0
- package/dist/employee-records/validatePersonDataTransferLineFullName.js.map +1 -0
- package/dist/employee-records/validatePersonDataTransferLineGender.d.ts +6 -0
- package/dist/employee-records/validatePersonDataTransferLineGender.js +13 -0
- package/dist/employee-records/validatePersonDataTransferLineGender.js.map +1 -0
- package/dist/employee-records/validatePersonDataTransferLinePersonalEmail.d.ts +6 -0
- package/dist/employee-records/validatePersonDataTransferLinePersonalEmail.js +15 -0
- package/dist/employee-records/validatePersonDataTransferLinePersonalEmail.js.map +1 -0
- package/dist/employee-records/validatePersonDataTransferLinePersonalPhone.d.ts +6 -0
- package/dist/employee-records/validatePersonDataTransferLinePersonalPhone.js +15 -0
- package/dist/employee-records/validatePersonDataTransferLinePersonalPhone.js.map +1 -0
- package/dist/employee-records/validatePersonDataTransferLineTenure.js +1 -1
- package/dist/employee-records/validatePersonDataTransferLineTenure.js.map +1 -1
- package/dist/helpers/_types.d.ts +7 -3
- package/dist/helpers/handleApproveLeaveRequestWebhook.d.ts +15 -0
- package/dist/helpers/handleApproveLeaveRequestWebhook.js +21 -0
- package/dist/helpers/handleApproveLeaveRequestWebhook.js.map +1 -0
- package/dist/helpers/handleCancelLeaveRequestWebhook.d.ts +15 -0
- package/dist/helpers/handleCancelLeaveRequestWebhook.js +21 -0
- package/dist/helpers/handleCancelLeaveRequestWebhook.js.map +1 -0
- package/dist/helpers/handleCreateIntegrationWebhook.d.ts +6 -4
- package/dist/helpers/handleCreateIntegrationWebhook.js +24 -4
- package/dist/helpers/handleCreateIntegrationWebhook.js.map +1 -1
- package/dist/helpers/handleCreateLeaveRequestWebhook.d.ts +15 -0
- package/dist/helpers/handleCreateLeaveRequestWebhook.js +21 -0
- package/dist/helpers/handleCreateLeaveRequestWebhook.js.map +1 -0
- package/dist/helpers/handleDenyLeaveRequestWebhook.d.ts +15 -0
- package/dist/helpers/handleDenyLeaveRequestWebhook.js +21 -0
- package/dist/helpers/handleDenyLeaveRequestWebhook.js.map +1 -0
- package/dist/helpers/handleGetAuthorizationUrlWebhook.d.ts +4 -4
- package/dist/helpers/handleGetAuthorizationUrlWebhook.js +7 -2
- package/dist/helpers/handleGetAuthorizationUrlWebhook.js.map +1 -1
- package/dist/helpers/handleGetLeaveBalancesWebhook.d.ts +6 -7
- package/dist/helpers/handleGetLeaveBalancesWebhook.js +7 -2
- package/dist/helpers/handleGetLeaveBalancesWebhook.js.map +1 -1
- package/dist/helpers/handleGetLeaveCategoriesWebhook.d.ts +15 -0
- package/dist/helpers/handleGetLeaveCategoriesWebhook.js +27 -0
- package/dist/helpers/handleGetLeaveCategoriesWebhook.js.map +1 -0
- package/dist/helpers/handleGetLeaveRequestHoursWebhook.d.ts +13 -0
- package/dist/helpers/handleGetLeaveRequestHoursWebhook.js +27 -0
- package/dist/helpers/handleGetLeaveRequestHoursWebhook.js.map +1 -0
- package/dist/helpers/handleProcessLeaveRequestWebhook.d.ts +15 -0
- package/dist/helpers/handleProcessLeaveRequestWebhook.js +21 -0
- package/dist/helpers/handleProcessLeaveRequestWebhook.js.map +1 -0
- package/dist/helpers/handleRequest.d.ts +12 -0
- package/dist/helpers/handleRequest.js +58 -0
- package/dist/helpers/handleRequest.js.map +1 -0
- package/dist/helpers/handleRequestWithWorknice.d.ts +17 -8
- package/dist/helpers/handleRequestWithWorknice.js +35 -58
- package/dist/helpers/handleRequestWithWorknice.js.map +1 -1
- package/dist/helpers/handleTriggerIntegrationSyncWebhook.d.ts +15 -11
- package/dist/helpers/handleTriggerIntegrationSyncWebhook.js +214 -139
- package/dist/helpers/handleTriggerIntegrationSyncWebhook.js.map +1 -1
- package/dist/helpers/index.d.ts +9 -1
- package/dist/helpers/index.js +26 -10
- package/dist/helpers/index.js.map +1 -1
- package/dist/index.d.ts +9 -6
- package/dist/index.js +6 -8
- package/dist/index.js.map +1 -1
- package/dist/utils/errorToString.js +4 -0
- package/dist/utils/errorToString.js.map +1 -1
- package/dist/utils/isSamePlainDate.d.ts +3 -1
- package/dist/utils/isSamePlainDate.js +1 -1
- package/dist/utils/isSamePlainDate.js.map +1 -1
- package/dist/utils/isValidPlainDate.d.ts +1 -1
- package/dist/utils/isValidPlainDate.js +1 -1
- package/dist/utils/isValidPlainDate.js.map +1 -1
- package/dist/utils/parsePlainDate.d.ts +1 -1
- package/dist/utils/parsePlainDate.js +1 -1
- package/dist/utils/parsePlainDate.js.map +1 -1
- package/dist/webhooks.d.ts +71 -1
- package/package.json +8 -5
- package/dist/employee-records/validatePersonDataTransferLinePersonalDetails.d.ts +0 -6
- package/dist/employee-records/validatePersonDataTransferLinePersonalDetails.js +0 -38
- package/dist/employee-records/validatePersonDataTransferLinePersonalDetails.js.map +0 -1
- package/dist/utils/isAfter.d.ts +0 -4
- package/dist/utils/isAfter.js +0 -5
- package/dist/utils/isAfter.js.map +0 -1
|
@@ -1,65 +1,42 @@
|
|
|
1
1
|
import createWorkniceClient from "../api/createWorkniceClient.js";
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const apiToken = await tasks.getApiToken({ env, logger, payload, request });
|
|
14
|
-
logger.info("Retrieved Worknice API token.");
|
|
15
|
-
const worknice = createWorkniceClient({
|
|
16
|
-
accessToken: apiToken,
|
|
17
|
-
apiUrl: options?.apiUrl
|
|
18
|
-
});
|
|
19
|
-
logger.info("Created Worknice client.");
|
|
20
|
-
logger.dedent("Finished initialising Worknice client.");
|
|
21
|
-
logger.debug("Handling request\u2026");
|
|
22
|
-
const result = await tasks.handleRequest({
|
|
23
|
-
env,
|
|
24
|
-
logger,
|
|
25
|
-
payload,
|
|
26
|
-
request,
|
|
27
|
-
worknice
|
|
28
|
-
});
|
|
29
|
-
logger.debug("Generating response\u2026");
|
|
30
|
-
let response;
|
|
31
|
-
if (result instanceof Response) {
|
|
32
|
-
response = result;
|
|
33
|
-
} else if (typeof result === "object") {
|
|
34
|
-
response = new Response(JSON.stringify(result), {
|
|
35
|
-
headers: {
|
|
36
|
-
"Content-Type": "application/json"
|
|
37
|
-
},
|
|
38
|
-
status: 200
|
|
2
|
+
import handleRequest from "./handleRequest.js";
|
|
3
|
+
const handleRequestWithWorknice = async (request, tasks, options) => handleRequest(
|
|
4
|
+
request,
|
|
5
|
+
{
|
|
6
|
+
handleRequest: async ({ env, logger, payload, request: request2 }) => {
|
|
7
|
+
logger.indent("Initialising Worknice client\u2026");
|
|
8
|
+
const apiToken = await tasks.getApiToken({ env, logger, payload, request: request2 });
|
|
9
|
+
logger.info("Retrieved Worknice API token.");
|
|
10
|
+
const worknice = createWorkniceClient({
|
|
11
|
+
accessToken: apiToken,
|
|
12
|
+
apiUrl: options?.apiUrl
|
|
39
13
|
});
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
14
|
+
logger.dedent("Finished initialising Worknice client.");
|
|
15
|
+
const result = await tasks.handleRequest({
|
|
16
|
+
env,
|
|
17
|
+
logger,
|
|
18
|
+
payload,
|
|
19
|
+
request: request2,
|
|
20
|
+
worknice
|
|
46
21
|
});
|
|
22
|
+
return result;
|
|
23
|
+
},
|
|
24
|
+
parseRequest: async ({ logger, request: request2 }) => {
|
|
25
|
+
if ("parseRequest" in tasks) {
|
|
26
|
+
const result = await tasks.parseRequest({
|
|
27
|
+
logger,
|
|
28
|
+
request: request2
|
|
29
|
+
});
|
|
30
|
+
return result;
|
|
31
|
+
} else {
|
|
32
|
+
const payload = await tasks.parsePayload({ logger, request: request2 });
|
|
33
|
+
const env = await tasks.getEnv({ logger, payload, request: request2 });
|
|
34
|
+
return { env, payload };
|
|
35
|
+
}
|
|
47
36
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
} catch (error) {
|
|
52
|
-
const message = errorToString(error, {
|
|
53
|
-
format: options?.debug ? "chain" : "simple",
|
|
54
|
-
stack: options?.debug ?? false
|
|
55
|
-
});
|
|
56
|
-
logger.error(message);
|
|
57
|
-
await logger.flush();
|
|
58
|
-
return new Response(message, {
|
|
59
|
-
status: 500
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
};
|
|
37
|
+
},
|
|
38
|
+
options
|
|
39
|
+
);
|
|
63
40
|
var handleRequestWithWorknice_default = handleRequestWithWorknice;
|
|
64
41
|
export {
|
|
65
42
|
handleRequestWithWorknice_default as default
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/helpers/handleRequestWithWorknice.ts"],"sourcesContent":["import createWorkniceClient from \"../api/createWorkniceClient.js\";\nimport
|
|
1
|
+
{"version":3,"sources":["../../src/helpers/handleRequestWithWorknice.ts"],"sourcesContent":["import createWorkniceClient from \"../api/createWorkniceClient.js\";\nimport type { HandlerOptions, TaskContext } from \"./_types.js\";\nimport handleRequest from \"./handleRequest.js\";\n\ntype Tasks<RequestPayload, ResponsePayload, Env = null, Req extends Request = Request> = {\n getApiToken: (\n context: Pick<TaskContext<RequestPayload, Env, Req>, \"env\" | \"logger\" | \"payload\" | \"request\">,\n ) => Promise<string | undefined>;\n handleRequest: (context: TaskContext<RequestPayload, Env, Req>) => Promise<ResponsePayload>;\n} & (\n | {\n /**\n * @deprecated Use `parseRequest` instead.\n */\n getEnv: (\n context: Pick<TaskContext<RequestPayload, Env, Req>, \"logger\" | \"payload\" | \"request\">,\n ) => Promise<Env>;\n /**\n * @deprecated Use `parseRequest` instead.\n */\n parsePayload: (\n context: Pick<TaskContext<RequestPayload, Env, Req>, \"logger\" | \"request\">,\n ) => Promise<RequestPayload>;\n }\n | {\n parseRequest: (\n context: Pick<TaskContext<RequestPayload, Env, Req>, \"logger\" | \"request\">,\n ) => Promise<Pick<TaskContext<RequestPayload, Env, Req>, \"env\" | \"payload\">>;\n }\n);\n\nconst handleRequestWithWorknice = async <\n RequestPayload,\n ResponsePayload extends Response | object | string | undefined | void = void,\n Env = null,\n Req extends Request = Request,\n>(\n request: Req,\n tasks: Tasks<RequestPayload, ResponsePayload, Env, Req>,\n options?: HandlerOptions,\n) =>\n handleRequest<RequestPayload, ResponsePayload, Env, Req>(\n request,\n {\n handleRequest: async ({ env, logger, payload, request }) => {\n logger.indent(\"Initialising Worknice client…\");\n\n const apiToken = await tasks.getApiToken({ env, logger, payload, request });\n\n logger.info(\"Retrieved Worknice API token.\");\n\n const worknice = createWorkniceClient({\n accessToken: apiToken,\n apiUrl: options?.apiUrl,\n });\n\n logger.dedent(\"Finished initialising Worknice client.\");\n\n const result = await tasks.handleRequest({\n env,\n logger,\n payload,\n request,\n worknice,\n });\n\n return result;\n },\n parseRequest: async ({ logger, request }) => {\n if (\"parseRequest\" in tasks) {\n const result = await tasks.parseRequest({\n logger,\n request,\n });\n return result;\n } else {\n const payload = await tasks.parsePayload({ logger, request });\n const env = await tasks.getEnv({ logger, payload, request });\n return { env, payload };\n }\n },\n },\n options,\n );\n\nexport default handleRequestWithWorknice;\n"],"mappings":"AAAA,OAAO,0BAA0B;AAEjC,OAAO,mBAAmB;AA6B1B,MAAM,4BAA4B,OAMhC,SACA,OACA,YAEA;AAAA,EACE;AAAA,EACA;AAAA,IACE,eAAe,OAAO,EAAE,KAAK,QAAQ,SAAS,SAAAA,SAAQ,MAAM;AAC1D,aAAO,OAAO,oCAA+B;AAE7C,YAAM,WAAW,MAAM,MAAM,YAAY,EAAE,KAAK,QAAQ,SAAS,SAAAA,SAAQ,CAAC;AAE1E,aAAO,KAAK,+BAA+B;AAE3C,YAAM,WAAW,qBAAqB;AAAA,QACpC,aAAa;AAAA,QACb,QAAQ,SAAS;AAAA,MACnB,CAAC;AAED,aAAO,OAAO,wCAAwC;AAEtD,YAAM,SAAS,MAAM,MAAM,cAAc;AAAA,QACvC;AAAA,QACA;AAAA,QACA;AAAA,QACA,SAAAA;AAAA,QACA;AAAA,MACF,CAAC;AAED,aAAO;AAAA,IACT;AAAA,IACA,cAAc,OAAO,EAAE,QAAQ,SAAAA,SAAQ,MAAM;AAC3C,UAAI,kBAAkB,OAAO;AAC3B,cAAM,SAAS,MAAM,MAAM,aAAa;AAAA,UACtC;AAAA,UACA,SAAAA;AAAA,QACF,CAAC;AACD,eAAO;AAAA,MACT,OAAO;AACL,cAAM,UAAU,MAAM,MAAM,aAAa,EAAE,QAAQ,SAAAA,SAAQ,CAAC;AAC5D,cAAM,MAAM,MAAM,MAAM,OAAO,EAAE,QAAQ,SAAS,SAAAA,SAAQ,CAAC;AAC3D,eAAO,EAAE,KAAK,QAAQ;AAAA,MACxB;AAAA,IACF;AAAA,EACF;AAAA,EACA;AACF;AAEF,IAAO,oCAAQ;","names":["request"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { W as WorkniceClient } from '../_types-
|
|
1
|
+
import { W as WorkniceClient } from '../_types-kBsjg67t.js';
|
|
2
2
|
import { PartialPersonDataTransferLine } from '../employee-records/_types.js';
|
|
3
3
|
import { TriggerIntegrationSyncRequestPayload } from '../webhooks.js';
|
|
4
4
|
import { HandlerOptions, TaskContext } from './_types.js';
|
|
5
5
|
import '../api/_generated.js';
|
|
6
6
|
import '../api/WorkniceIntegrationLogger.js';
|
|
7
7
|
|
|
8
|
-
type Context<Env> = TaskContext<TriggerIntegrationSyncRequestPayload, Env> & {
|
|
8
|
+
type Context<Env, Req extends Request = Request> = TaskContext<TriggerIntegrationSyncRequestPayload, Env, Req> & {
|
|
9
9
|
integration: Awaited<ReturnType<WorkniceClient["getIntegration"]>>;
|
|
10
10
|
};
|
|
11
11
|
type Person = PartialPersonDataTransferLine & {
|
|
@@ -21,16 +21,16 @@ type Person = PartialPersonDataTransferLine & {
|
|
|
21
21
|
profileEmail: string | null;
|
|
22
22
|
} | null;
|
|
23
23
|
};
|
|
24
|
-
type Tasks<Env> = {
|
|
25
|
-
createRemotePerson?: (person: Person, context: Context<Env>) => Promise<{
|
|
24
|
+
type Tasks<Env, Req extends Request = Request> = {
|
|
25
|
+
createRemotePerson?: (person: Person, context: Context<Env, Req>) => Promise<{
|
|
26
26
|
id: string;
|
|
27
27
|
name: string;
|
|
28
28
|
}>;
|
|
29
|
-
getApiToken: (context: Pick<Context<Env>, "env" | "logger" | "payload" | "request">) => Promise<string>;
|
|
30
|
-
getConfig: (context: Context<Env>) => Promise<Config>;
|
|
31
|
-
getEnv: (context: Pick<Context<Env>, "logger" | "payload" | "request">) => Promise<Env>;
|
|
32
|
-
getRemotePeople: (context: Context<Env>) => Promise<Array<Person>>;
|
|
33
|
-
updateRemotePerson?: (person: Person, context: Context<Env>) => Promise<unknown>;
|
|
29
|
+
getApiToken: (context: Pick<Context<Env, Req>, "env" | "logger" | "payload" | "request">) => Promise<string>;
|
|
30
|
+
getConfig: (context: Context<Env, Req>) => Promise<Config>;
|
|
31
|
+
getEnv: (context: Pick<Context<Env, Req>, "logger" | "payload" | "request">) => Promise<Env>;
|
|
32
|
+
getRemotePeople: (context: Context<Env, Req>) => Promise<Array<Person>>;
|
|
33
|
+
updateRemotePerson?: (person: Person, context: Context<Env, Req>) => Promise<unknown>;
|
|
34
34
|
};
|
|
35
35
|
type Config = {
|
|
36
36
|
appName: string;
|
|
@@ -38,8 +38,12 @@ type Config = {
|
|
|
38
38
|
mode?: "connection-only" | "one-way" | "two-way";
|
|
39
39
|
syncFields?: {
|
|
40
40
|
bankAccounts?: boolean;
|
|
41
|
+
dateOfBirth?: boolean;
|
|
41
42
|
emergencyContacts?: boolean;
|
|
42
|
-
|
|
43
|
+
fullName?: boolean;
|
|
44
|
+
gender?: boolean;
|
|
45
|
+
personalEmail?: boolean;
|
|
46
|
+
personalPhone?: boolean;
|
|
43
47
|
postalAddress?: boolean;
|
|
44
48
|
profile?: boolean;
|
|
45
49
|
remuneration?: boolean;
|
|
@@ -68,6 +72,6 @@ type Config = {
|
|
|
68
72
|
* 4. Add new people to the remote app: Create new people in the remote app for
|
|
69
73
|
* connections are unmatched and local-only. Mark the connections as merged.
|
|
70
74
|
*/
|
|
71
|
-
declare const handleTriggerIntegrationSyncWebhook: <Env>(request:
|
|
75
|
+
declare const handleTriggerIntegrationSyncWebhook: <Env, Req extends Request = Request>(request: Req, { createRemotePerson, getApiToken, getConfig, getEnv, getRemotePeople, updateRemotePerson, }: Tasks<Env, Req>, options?: HandlerOptions) => Promise<Response>;
|
|
72
76
|
|
|
73
77
|
export { handleTriggerIntegrationSyncWebhook as default };
|