@oneblink/apps-react 10.1.1-beta.1 → 10.1.2-beta.1

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.
@@ -98,12 +98,13 @@ export declare function getTaskGroupInstances(formsAppId: number, abortSignal?:
98
98
  * @param options
99
99
  * @returns
100
100
  */
101
- export declare function completeTask({ formsAppId, taskId, taskActionId, taskGroupInstanceId, completedAt, abortSignal, }: {
101
+ export declare function completeTask({ formsAppId, taskId, taskActionId, taskGroupInstanceId, completedAt, isAdhoc, abortSignal, }: {
102
102
  formsAppId: number;
103
103
  taskId: string;
104
104
  taskActionId: string;
105
105
  taskGroupInstanceId: string | undefined;
106
106
  completedAt: string | undefined;
107
+ isAdhoc?: boolean;
107
108
  abortSignal?: AbortSignal;
108
109
  }): Promise<ScheduledTasksTypes.CompletedTask>;
109
110
  /**
@@ -142,10 +142,17 @@ export async function getTaskGroupInstances(formsAppId, abortSignal) {
142
142
  * @param options
143
143
  * @returns
144
144
  */
145
- export async function completeTask({ formsAppId, taskId, taskActionId, taskGroupInstanceId, completedAt, abortSignal, }) {
145
+ export async function completeTask({ formsAppId, taskId, taskActionId, taskGroupInstanceId, completedAt, isAdhoc, abortSignal, }) {
146
146
  const url = `${tenants.current.apiOrigin}/completed-tasks`;
147
147
  try {
148
- return await postRequest(url, { formsAppId, taskId, taskActionId, taskGroupInstanceId, completedAt }, abortSignal);
148
+ return await postRequest(url, {
149
+ formsAppId,
150
+ taskId,
151
+ taskActionId,
152
+ taskGroupInstanceId,
153
+ completedAt,
154
+ isAdhoc,
155
+ }, abortSignal);
149
156
  }
150
157
  catch (err) {
151
158
  Sentry.captureException(err);
@@ -1 +1 @@
1
- {"version":3,"file":"scheduled-tasks-service.js","sourceRoot":"","sources":["../../src/apps/scheduled-tasks-service.ts"],"names":[],"mappings":"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","sourcesContent":["import { ScheduledTasksTypes } from '@oneblink/types'\nimport tenants from './tenants'\nimport Sentry from './Sentry'\nimport {\n HTTPError,\n deleteRequest,\n getRequest,\n postRequest,\n} from './services/fetch'\nimport { isOffline } from './offline-service'\nimport OneBlinkAppsError from './services/errors/oneBlinkAppsError'\n\nexport interface TaskAvailability {\n task: ScheduledTasksTypes.Task\n completedTask?: ScheduledTasksTypes.CompletedTask\n daysAvailable: number\n}\n\nexport interface TaskResponse extends TaskAvailability {\n actions: ScheduledTasksTypes.TaskAction[]\n}\n\nasync function getTasks<\n T extends {\n taskResponses: TaskResponse[]\n },\n>(url: string, abortSignal?: AbortSignal) {\n try {\n return await getRequest<T>(url, abortSignal)\n } catch (err) {\n Sentry.captureException(err)\n\n const error = err as HTTPError\n if (isOffline()) {\n throw new OneBlinkAppsError(\n 'You are currently offline and do not have a local version of these scheduled tasks, please connect to the internet and try again',\n {\n originalError: error,\n isOffline: true,\n },\n )\n }\n switch (error.status) {\n case 400:\n case 404: {\n throw new OneBlinkAppsError(\n 'We could not find the forms app you are looking for. Please contact support if the problem persists.',\n {\n originalError: error,\n title: 'Unknown Forms App',\n httpStatusCode: error.status,\n },\n )\n }\n default: {\n throw new OneBlinkAppsError(\n 'An unknown error has occurred. Please contact support if the problem persists.',\n {\n originalError: error,\n httpStatusCode: error.status,\n },\n )\n }\n }\n }\n}\n\n/**\n * Obtain all of the related Tasks for a specific Forms App\n *\n * #### Example\n *\n * ```js\n * const formsAppId = 1\n * const date = '2023-12-01'\n * const tasks = await getTasksForFormsApp({ formsAppId, date })\n * ```\n *\n * @param formsAppId\n * @param abortSignal\n * @returns\n */\nexport async function getTasksForFormsApp({\n formsAppId,\n date,\n abortSignal,\n}: {\n formsAppId: number\n date: string\n abortSignal?: AbortSignal\n}): Promise<{\n taskResponses: TaskResponse[]\n}> {\n const url = `${tenants.current.apiOrigin}/forms-apps/${formsAppId}/scheduled-tasks?date=${date}`\n return await getTasks(url, abortSignal)\n}\n\n/**\n * Obtain all of the tasks related to a Task Group Instances in a specific Forms\n * App\n *\n * #### Example\n *\n * ```js\n * const formsAppId = 1\n * const taskGroupInstanceId = 'abc123'\n * const date = '2023-12-01'\n * const tasks = await getTaskGroupInstanceTasks({\n * formsAppId,\n * taskGroupInstanceId,\n * date,\n * })\n * ```\n *\n * @param formsAppId\n * @param taskGroupInstanceId\n * @param abortSignal\n * @returns\n */\nexport async function getTaskGroupInstanceTasks({\n taskGroupInstanceId,\n date,\n formsAppId,\n abortSignal,\n}: {\n taskGroupInstanceId: string\n date: string\n formsAppId: number\n abortSignal?: AbortSignal\n}) {\n const url = `${tenants.current.apiOrigin}/forms-apps/${formsAppId}/scheduled-task-group-instances/${taskGroupInstanceId}?date=${date}`\n return await getTasks<{\n taskResponses: TaskResponse[]\n taskGroup: ScheduledTasksTypes.TaskGroup\n taskGroupInstance: ScheduledTasksTypes.TaskGroupInstance\n }>(url, abortSignal)\n}\n\n/**\n * Obtain all of the Task Group instances for a specific Forms App\n *\n * #### Example\n *\n * ```js\n * const formsAppId = 1\n * const taskGroupInstances = await getTaskGroupInstances(formsAppId)\n * ```\n *\n * @param formsAppId\n * @param abortSignal\n * @returns\n */\nexport async function getTaskGroupInstances(\n formsAppId: number,\n abortSignal?: AbortSignal,\n) {\n const url = `${tenants.current.apiOrigin}/forms-apps/${formsAppId}/scheduled-task-group-instances`\n try {\n return await getRequest<{\n taskGroupInstances: Array<\n ScheduledTasksTypes.TaskGroupInstance & {\n taskAvailabilities: TaskAvailability[]\n taskGroup: ScheduledTasksTypes.TaskGroup\n }\n >\n }>(url, abortSignal)\n } catch (err) {\n Sentry.captureException(err)\n\n const error = err as HTTPError\n if (isOffline()) {\n throw new OneBlinkAppsError(\n 'You are currently offline and do not have a local version of these scheduled task groups, please connect to the internet and try again',\n {\n originalError: error,\n isOffline: true,\n },\n )\n }\n switch (error.status) {\n case 400:\n case 404: {\n throw new OneBlinkAppsError(\n 'We could not find the forms app you are looking for. Please contact support if the problem persists.',\n {\n originalError: error,\n title: 'Unknown Forms App',\n httpStatusCode: error.status,\n },\n )\n }\n default: {\n throw new OneBlinkAppsError(\n 'An unknown error has occurred. Please contact support if the problem persists.',\n {\n originalError: error,\n httpStatusCode: error.status,\n },\n )\n }\n }\n }\n}\n\n/**\n * Complete the related Task for a specific Forms App\n *\n * #### Example\n *\n * ```js\n * const formsAppId = 1\n * const taskId = 2\n * const completedTask = await scheduledTasksService.completeTask({\n * formsAppId,\n * taskId,\n * })\n * ```\n *\n * @param options\n * @returns\n */\nexport async function completeTask({\n formsAppId,\n taskId,\n taskActionId,\n taskGroupInstanceId,\n completedAt,\n abortSignal,\n}: {\n formsAppId: number\n taskId: string\n taskActionId: string\n taskGroupInstanceId: string | undefined\n completedAt: string | undefined\n abortSignal?: AbortSignal\n}): Promise<ScheduledTasksTypes.CompletedTask> {\n const url = `${tenants.current.apiOrigin}/completed-tasks`\n try {\n return await postRequest<ScheduledTasksTypes.CompletedTask>(\n url,\n { formsAppId, taskId, taskActionId, taskGroupInstanceId, completedAt },\n abortSignal,\n )\n } catch (err) {\n Sentry.captureException(err)\n\n const error = err as HTTPError\n if (isOffline()) {\n throw new OneBlinkAppsError(\n 'You are currently offline, please connect to the internet and try again',\n {\n originalError: error,\n isOffline: true,\n },\n )\n }\n switch (error.status) {\n case 403: {\n throw new OneBlinkAppsError(\n 'You do not have access to complete this task. Please contact your administrator to gain the correct level of access.',\n {\n originalError: error,\n requiresAccessRequest: true,\n httpStatusCode: error.status,\n },\n )\n }\n case 400:\n case 404: {\n throw new OneBlinkAppsError(error.message, {\n title: 'Invalid Request',\n httpStatusCode: error.status,\n })\n }\n default: {\n throw new OneBlinkAppsError(\n 'An unknown error has occurred. Please contact support if the problem persists.',\n {\n originalError: error,\n httpStatusCode: error.status,\n },\n )\n }\n }\n }\n}\n\n/**\n * Delete the completed task record related to a Task for a specific Forms App\n *\n * #### Example\n *\n * ```js\n * const formsAppId = 1\n * const taskId = 2\n * const completedTask = await scheduledTasksService.completeTask({\n * formsAppId,\n * taskId,\n * })\n * await deleteCompletedTask(completedTask.id)\n * ```\n *\n * @param id\n * @param abortSignal\n * @returns\n */\n\nexport async function deleteCompletedTask(\n id: string,\n abortSignal?: AbortSignal,\n): Promise<void> {\n const url = `${tenants.current.apiOrigin}/completed-tasks/${id}`\n try {\n await deleteRequest(url, abortSignal)\n } catch (err) {\n Sentry.captureException(err)\n\n const error = err as HTTPError\n if (isOffline()) {\n throw new OneBlinkAppsError(\n 'You are currently offline, please connect to the internet and try again',\n {\n originalError: error,\n isOffline: true,\n },\n )\n }\n switch (error.status) {\n case 403: {\n throw new OneBlinkAppsError(\n 'You do not have access to delete completed tasks. Please contact your administrator to gain the correct level of access.',\n {\n originalError: error,\n requiresAccessRequest: true,\n httpStatusCode: error.status,\n },\n )\n }\n case 400:\n case 404: {\n throw new OneBlinkAppsError(error.message, {\n title: 'Invalid Request',\n httpStatusCode: error.status,\n })\n }\n default: {\n throw new OneBlinkAppsError(\n 'An unknown error has occurred. Please contact support if the problem persists.',\n {\n originalError: error,\n httpStatusCode: error.status,\n },\n )\n }\n }\n }\n}\n"]}
1
+ {"version":3,"file":"scheduled-tasks-service.js","sourceRoot":"","sources":["../../src/apps/scheduled-tasks-service.ts"],"names":[],"mappings":"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","sourcesContent":["import { ScheduledTasksTypes } from '@oneblink/types'\nimport tenants from './tenants'\nimport Sentry from './Sentry'\nimport {\n HTTPError,\n deleteRequest,\n getRequest,\n postRequest,\n} from './services/fetch'\nimport { isOffline } from './offline-service'\nimport OneBlinkAppsError from './services/errors/oneBlinkAppsError'\n\nexport interface TaskAvailability {\n task: ScheduledTasksTypes.Task\n completedTask?: ScheduledTasksTypes.CompletedTask\n daysAvailable: number\n}\n\nexport interface TaskResponse extends TaskAvailability {\n actions: ScheduledTasksTypes.TaskAction[]\n}\n\nasync function getTasks<\n T extends {\n taskResponses: TaskResponse[]\n },\n>(url: string, abortSignal?: AbortSignal) {\n try {\n return await getRequest<T>(url, abortSignal)\n } catch (err) {\n Sentry.captureException(err)\n\n const error = err as HTTPError\n if (isOffline()) {\n throw new OneBlinkAppsError(\n 'You are currently offline and do not have a local version of these scheduled tasks, please connect to the internet and try again',\n {\n originalError: error,\n isOffline: true,\n },\n )\n }\n switch (error.status) {\n case 400:\n case 404: {\n throw new OneBlinkAppsError(\n 'We could not find the forms app you are looking for. Please contact support if the problem persists.',\n {\n originalError: error,\n title: 'Unknown Forms App',\n httpStatusCode: error.status,\n },\n )\n }\n default: {\n throw new OneBlinkAppsError(\n 'An unknown error has occurred. Please contact support if the problem persists.',\n {\n originalError: error,\n httpStatusCode: error.status,\n },\n )\n }\n }\n }\n}\n\n/**\n * Obtain all of the related Tasks for a specific Forms App\n *\n * #### Example\n *\n * ```js\n * const formsAppId = 1\n * const date = '2023-12-01'\n * const tasks = await getTasksForFormsApp({ formsAppId, date })\n * ```\n *\n * @param formsAppId\n * @param abortSignal\n * @returns\n */\nexport async function getTasksForFormsApp({\n formsAppId,\n date,\n abortSignal,\n}: {\n formsAppId: number\n date: string\n abortSignal?: AbortSignal\n}): Promise<{\n taskResponses: TaskResponse[]\n}> {\n const url = `${tenants.current.apiOrigin}/forms-apps/${formsAppId}/scheduled-tasks?date=${date}`\n return await getTasks(url, abortSignal)\n}\n\n/**\n * Obtain all of the tasks related to a Task Group Instances in a specific Forms\n * App\n *\n * #### Example\n *\n * ```js\n * const formsAppId = 1\n * const taskGroupInstanceId = 'abc123'\n * const date = '2023-12-01'\n * const tasks = await getTaskGroupInstanceTasks({\n * formsAppId,\n * taskGroupInstanceId,\n * date,\n * })\n * ```\n *\n * @param formsAppId\n * @param taskGroupInstanceId\n * @param abortSignal\n * @returns\n */\nexport async function getTaskGroupInstanceTasks({\n taskGroupInstanceId,\n date,\n formsAppId,\n abortSignal,\n}: {\n taskGroupInstanceId: string\n date: string\n formsAppId: number\n abortSignal?: AbortSignal\n}) {\n const url = `${tenants.current.apiOrigin}/forms-apps/${formsAppId}/scheduled-task-group-instances/${taskGroupInstanceId}?date=${date}`\n return await getTasks<{\n taskResponses: TaskResponse[]\n taskGroup: ScheduledTasksTypes.TaskGroup\n taskGroupInstance: ScheduledTasksTypes.TaskGroupInstance\n }>(url, abortSignal)\n}\n\n/**\n * Obtain all of the Task Group instances for a specific Forms App\n *\n * #### Example\n *\n * ```js\n * const formsAppId = 1\n * const taskGroupInstances = await getTaskGroupInstances(formsAppId)\n * ```\n *\n * @param formsAppId\n * @param abortSignal\n * @returns\n */\nexport async function getTaskGroupInstances(\n formsAppId: number,\n abortSignal?: AbortSignal,\n) {\n const url = `${tenants.current.apiOrigin}/forms-apps/${formsAppId}/scheduled-task-group-instances`\n try {\n return await getRequest<{\n taskGroupInstances: Array<\n ScheduledTasksTypes.TaskGroupInstance & {\n taskAvailabilities: TaskAvailability[]\n taskGroup: ScheduledTasksTypes.TaskGroup\n }\n >\n }>(url, abortSignal)\n } catch (err) {\n Sentry.captureException(err)\n\n const error = err as HTTPError\n if (isOffline()) {\n throw new OneBlinkAppsError(\n 'You are currently offline and do not have a local version of these scheduled task groups, please connect to the internet and try again',\n {\n originalError: error,\n isOffline: true,\n },\n )\n }\n switch (error.status) {\n case 400:\n case 404: {\n throw new OneBlinkAppsError(\n 'We could not find the forms app you are looking for. Please contact support if the problem persists.',\n {\n originalError: error,\n title: 'Unknown Forms App',\n httpStatusCode: error.status,\n },\n )\n }\n default: {\n throw new OneBlinkAppsError(\n 'An unknown error has occurred. Please contact support if the problem persists.',\n {\n originalError: error,\n httpStatusCode: error.status,\n },\n )\n }\n }\n }\n}\n\n/**\n * Complete the related Task for a specific Forms App\n *\n * #### Example\n *\n * ```js\n * const formsAppId = 1\n * const taskId = 2\n * const completedTask = await scheduledTasksService.completeTask({\n * formsAppId,\n * taskId,\n * })\n * ```\n *\n * @param options\n * @returns\n */\nexport async function completeTask({\n formsAppId,\n taskId,\n taskActionId,\n taskGroupInstanceId,\n completedAt,\n isAdhoc,\n abortSignal,\n}: {\n formsAppId: number\n taskId: string\n taskActionId: string\n taskGroupInstanceId: string | undefined\n completedAt: string | undefined\n isAdhoc?: boolean\n abortSignal?: AbortSignal\n}): Promise<ScheduledTasksTypes.CompletedTask> {\n const url = `${tenants.current.apiOrigin}/completed-tasks`\n try {\n return await postRequest<ScheduledTasksTypes.CompletedTask>(\n url,\n {\n formsAppId,\n taskId,\n taskActionId,\n taskGroupInstanceId,\n completedAt,\n isAdhoc,\n },\n abortSignal,\n )\n } catch (err) {\n Sentry.captureException(err)\n\n const error = err as HTTPError\n if (isOffline()) {\n throw new OneBlinkAppsError(\n 'You are currently offline, please connect to the internet and try again',\n {\n originalError: error,\n isOffline: true,\n },\n )\n }\n switch (error.status) {\n case 403: {\n throw new OneBlinkAppsError(\n 'You do not have access to complete this task. Please contact your administrator to gain the correct level of access.',\n {\n originalError: error,\n requiresAccessRequest: true,\n httpStatusCode: error.status,\n },\n )\n }\n case 400:\n case 404: {\n throw new OneBlinkAppsError(error.message, {\n title: 'Invalid Request',\n httpStatusCode: error.status,\n })\n }\n default: {\n throw new OneBlinkAppsError(\n 'An unknown error has occurred. Please contact support if the problem persists.',\n {\n originalError: error,\n httpStatusCode: error.status,\n },\n )\n }\n }\n }\n}\n\n/**\n * Delete the completed task record related to a Task for a specific Forms App\n *\n * #### Example\n *\n * ```js\n * const formsAppId = 1\n * const taskId = 2\n * const completedTask = await scheduledTasksService.completeTask({\n * formsAppId,\n * taskId,\n * })\n * await deleteCompletedTask(completedTask.id)\n * ```\n *\n * @param id\n * @param abortSignal\n * @returns\n */\n\nexport async function deleteCompletedTask(\n id: string,\n abortSignal?: AbortSignal,\n): Promise<void> {\n const url = `${tenants.current.apiOrigin}/completed-tasks/${id}`\n try {\n await deleteRequest(url, abortSignal)\n } catch (err) {\n Sentry.captureException(err)\n\n const error = err as HTTPError\n if (isOffline()) {\n throw new OneBlinkAppsError(\n 'You are currently offline, please connect to the internet and try again',\n {\n originalError: error,\n isOffline: true,\n },\n )\n }\n switch (error.status) {\n case 403: {\n throw new OneBlinkAppsError(\n 'You do not have access to delete completed tasks. Please contact your administrator to gain the correct level of access.',\n {\n originalError: error,\n requiresAccessRequest: true,\n httpStatusCode: error.status,\n },\n )\n }\n case 400:\n case 404: {\n throw new OneBlinkAppsError(error.message, {\n title: 'Invalid Request',\n httpStatusCode: error.status,\n })\n }\n default: {\n throw new OneBlinkAppsError(\n 'An unknown error has occurred. Please contact support if the problem persists.',\n {\n originalError: error,\n httpStatusCode: error.status,\n },\n )\n }\n }\n }\n}\n"]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@oneblink/apps-react",
3
3
  "description": "Helper functions for OneBlink apps in ReactJS.",
4
- "version": "10.1.1-beta.1",
4
+ "version": "10.1.2-beta.1",
5
5
  "author": "OneBlink <developers@oneblink.io> (https://oneblink.io)",
6
6
  "bugs": {
7
7
  "url": "https://github.com/oneblink/apps-react/issues"