diff --git a/apps/server/src/assets/templates/user-code.html b/apps/server/src/assets/templates/user-code.html new file mode 100644 index 00000000..04c180b9 --- /dev/null +++ b/apps/server/src/assets/templates/user-code.html @@ -0,0 +1,3 @@ +
+

{{value}}

+
diff --git a/packages/account/domain/src/server/use-cases/send-user-code.ts b/packages/account/domain/src/server/use-cases/send-user-code.ts index 2b403b4e..c57c417a 100644 --- a/packages/account/domain/src/server/use-cases/send-user-code.ts +++ b/packages/account/domain/src/server/use-cases/send-user-code.ts @@ -24,6 +24,7 @@ export class SendUserCodeUseCase implements UseCase { const mail = createMail( user.contact.email, + // render('user-code.html', code) `

${code.value}

`, `Código de autenticação` ); diff --git a/packages/shared/util-data/src/server/index.ts b/packages/shared/util-data/src/server/index.ts index 5f91c8d3..80fcf2e4 100644 --- a/packages/shared/util-data/src/server/index.ts +++ b/packages/shared/util-data/src/server/index.ts @@ -1 +1,2 @@ +export * from './templates'; export * from './providers'; diff --git a/packages/shared/util-data/src/server/templates/index.ts b/packages/shared/util-data/src/server/templates/index.ts new file mode 100644 index 00000000..193c205c --- /dev/null +++ b/packages/shared/util-data/src/server/templates/index.ts @@ -0,0 +1 @@ +export * from './render'; diff --git a/packages/shared/util-data/src/server/templates/render.ts b/packages/shared/util-data/src/server/templates/render.ts new file mode 100644 index 00000000..65e27ca4 --- /dev/null +++ b/packages/shared/util-data/src/server/templates/render.ts @@ -0,0 +1,17 @@ +import { readFileSync } from 'node:fs'; +import { join } from 'node:path'; + +type Filename = `${string}.html`; + +type Context = Record; + +/** + * O template deve estar no diretório `apps/server/src/assets/templates/` + * O contexto deve satisfazer aos valores {{property}} como no template + */ +export const render = (file: Filename, context: T) => { + const template = readFileSync(join(__dirname, 'assets', 'templates', file)); + return template.toString('utf-8').replace(/\{\{(\w+)\}\}/g, (_, key) => { + return context[key] ? String(context[key]) : ''; + }); +};