Press n or j to go to the next uncovered block, b, p or k for the previous block.
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 | 1x 1x 1x 1x 136x 10x 10x 5x 5x 5x 5x 5x 2x 1x 1x 2x 3x 2x 1x 1x 1x 3x 1x 1x 1x 1x 2x 2x 2x 2x | import DefaultHandler from './default'; import { Asset, Assets } from '../../../types'; export const schema = { type: 'object' }; // The Management API requires the fields to be specified const defaultFields = ['name', 'enabled', 'credentials', 'settings', 'default_from_address']; export default class EmailProviderHandler extends DefaultHandler { constructor(options: DefaultHandler) { super({ ...options, type: 'emailProvider', }); } async getType(): Promise<Asset> { try { return await this.client.emailProvider.get({ include_fields: true, fields: defaultFields }); } catch (err) { if (err.statusCode === 404) return {}; throw err; } } objString(provider) { return super.objString({ name: provider.name, enabled: provider.enabled }); } async processChanges(assets: Assets): Promise<void> { const { emailProvider } = assets; Iif (!emailProvider) return; let existing = await this.getType(); if (Object.keys(emailProvider).length === 0) { if (this.config('AUTH0_ALLOW_DELETE') === true) { await this.client.emailProvider.delete(); this.didDelete(existing); } return; } if (existing.name) { if (existing.name !== emailProvider.name) { // Delete the current provider as it's different await this.client.emailProvider.delete(); this.didDelete(existing); existing = {}; } } if (existing.name) { const provider = { name: emailProvider.name, enabled: emailProvider.enabled }; const updated = await this.client.emailProvider.update(provider, emailProvider); this.updated += 1; this.didUpdate(updated); } else { const provider = { name: emailProvider.name, enabled: emailProvider.enabled }; const created = await this.client.emailProvider.configure(provider, emailProvider); this.created += 1; this.didCreate(created); } } } |