Lum*_*ume 6 javascript node.js directus
我有一个自定义(编码)钩子,其工作原理如下:
\n\nmodule.exports = function registerHook({ action }, { services, exceptions }) {\n const { MailService, ItemsService } = services;\n const { ServiceUnavailableException, ForbiddenException } = exceptions;\n\n // Send mail to admin when event time is updated\n action(\'items.update\', async ({ keys, collection, payload }, { schema, accountability }) => {\n if (collection !== \'events\') return;\n if (\n !payload.time_get_in &&\n !payload.time_setup_start &&\n !payload.time_setup_end &&\n !payload.time_soundcheck_start &&\n !payload.time_soundcheck_end &&\n !payload.time_dinner &&\n !payload.time_doors &&\n !payload.time_show_start &&\n !payload.time_show_end &&\n !payload.time_curfew_live_music &&\n !payload.time_curfew_guests\n ) {\n return;\n }\n\n const eventsService = new ItemsService(\'events\', { accountability: accountability, schema: schema });\n const contactsService = new ItemsService(\'contacts\', { accountability: accountability, schema: schema });\n const mailService = new MailService({ schema });\n\n const contacts = await contactsService.readByQuery({ filter: { getsmailon_eventtimechange: { _eq: true } } });\n\n contacts.forEach(async (contact) => {\n keys.forEach(async (el) => {\n // get event\n let event = null;\n try {\n event = await eventsService.readOne(el, { fields: [\'*\'] });\n } catch (error) {\n console.error(error);\n throw new ServiceUnavailableException(error);\n }\n\n // send mail\n try {\n await mailService.send({\n to: contact.email,\n subject: \'Zeit der Veranstaltung \' + event.name + \' ge\xc3\xa4ndert\',\n text: \'Zeit der Veranstaltung <b>\' + event.name + \'</b> ge\xc3\xa4ndert\',\n template: {\n name: \'event-time-update\',\n data: {\n collection: collection,\n event: event,\n payload: payload,\n },\n },\n });\n console.log(\'mail sent for event\', event.id);\n } catch (error) {\n console.error(error);\n throw new ServiceUnavailableException(error);\n }\n });\n });\n\n return;\n });\n};\n\nRun Code Online (Sandbox Code Playgroud)\n
| 归档时间: |
|
| 查看次数: |
2608 次 |
| 最近记录: |