You've already forked AstralRinth
forked from didirus/AstralRinth
feat: doc templating & cleanup of routes (#4411)
* feat: clean up route structure * feat: install html-pdf-node-ts * fea * feat: use @ceereals/vue-pdf (react-pdf) * feat: remove pdf * feat: hide cc * feat: shared template * feat: payment statement document & redirect for emails * feat: layout tweaks * fix: lint issues * fix: robots.txt * feat: remove letterhead * Delete .claude/settings.local.json Signed-off-by: Calum H. <contact@cal.engineer> --------- Signed-off-by: Calum H. <contact@cal.engineer>
This commit is contained in:
@@ -0,0 +1,28 @@
|
||||
import { render } from '@vue-email/render'
|
||||
import type { Component } from 'vue'
|
||||
|
||||
import docs from '~/templates/docs'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const template = event.context.params?.template as string
|
||||
try {
|
||||
const component = (await docs[template]()).default as Component | undefined
|
||||
|
||||
if (!component) {
|
||||
throw createError({
|
||||
statusCode: 404,
|
||||
message: 'Document template not found',
|
||||
})
|
||||
}
|
||||
|
||||
const html = await render(component, {})
|
||||
|
||||
return html
|
||||
} catch (error) {
|
||||
console.error(`Error rendering document template ${template}:`, error)
|
||||
throw createError({
|
||||
statusCode: 500,
|
||||
message: 'Failed to render document template',
|
||||
})
|
||||
}
|
||||
})
|
||||
@@ -1,7 +1,7 @@
|
||||
import { render } from '@vue-email/render'
|
||||
import type { Component } from 'vue'
|
||||
|
||||
import emails from '~/emails'
|
||||
import emails from '~/templates/emails'
|
||||
|
||||
export default defineEventHandler(async (event) => {
|
||||
const template = event.context.params?.template as string
|
||||
Reference in New Issue
Block a user