actions/list-activities/list-activities.mjs
import timebuzzer from "../../timebuzzer.app.mjs"; import constants from "../../common/constants.mjs"; export default { key: "timebuzzer-list-activities", name: "List Activities", description: "Retrieves a list of all activities in Timebuzzer. [See the documentation](https://my.timebuzzer.com/doc/#api-Activities-GetFilteredActivities)", version: "0.0.2", annotations: { destructiveHint: false, openWorldHint: true, readOnlyHint: true, }, type: "action", props: { timebuzzer, userIds: { propDefinition: [ timebuzzer, "userId", ], type: "integer[]", label: "User IDs", description: "Filter by User Ids", optional: true, }, startDate: { propDefinition: [ timebuzzer, "startDate", ], description: "Returns Activities which starts after this date in UTC. e.g. `2016-12-10T09:00:00.000Z`", optional: true, }, endDate: { propDefinition: [ timebuzzer, "endDate", ], description: "Returns Activities which ends before this date in UTC. e.g. `2016-12-10T09:00:00.000Z`", optional: true, }, note: { propDefinition: [ timebuzzer, "note", ], optional: true, }, runnintActivities: { type: "boolean", label: "Runnint Activities", description: "If `true`, activities without an end date will be found", optional: true, }, }, async run({ $ }) { const results = []; const data = { userIds: this.userIds, startDate: this.startDate, endDate: this.endDate, note: this.note, runningActivities: this.runningActivities, }; const params = { count: constants.DEFAULT_LIMIT, offset: 0, }; let total; do { const { activities } = await this.timebuzzer.listFilteredActivities({ $, data, params, }); results.push(...activities); total = activities?.length; params.offset += params.count; } while (total === params.count); $.export("$summary", `Fetched ${results.length} activit${results.length === 1 ? "y" : "ies"} successfully`); return results; }, };