create-chuntianxiaozhu
Version:
春天小猪模板工具
116 lines (107 loc) • 2.76 kB
text/typescript
import { Controller, Get, Render, Req, Res } from '@nestjs/common';
import { CommonService } from './common/common.service';
import { SkipAuth } from './utils/decorator';
import { SkipThrottle } from '@nestjs/throttler';
import { Request, Response } from 'express';
import { isDev } from './utils/common';
const EjsMap = {
'www.chuntianxiaozhu.com': {
assetsName: 'contentResource',
templateName: 'index',
},
'design.chuntianxiaozhu.com': {
assetsName: 'designResource',
templateName: 'design',
},
'develop.chuntianxiaozhu.com': {
assetsName: 'developResource',
templateName: 'develop',
},
'waiter.chuntianxiaozhu.com': {
assetsName: 'waiterResource',
templateName: 'waiter',
},
};
export class AppController {
constructor(private commonService: CommonService) {}
async home( req: Request, res: Response) {
const ejsInfo = EjsMap[req.hostname] || {
assetsName: 'contentResource',
templateName: 'index',
};
const asset = await this.commonService.findAssets(ejsInfo.assetsName);
if (!asset) {
return res.render(ejsInfo.templateName, {
csrfToken: req.csrfToken && req.csrfToken(),
});
}
let content: any = {};
try {
content = JSON.parse(asset.content);
} catch {}
if (!isDev()) {
return res.render(ejsInfo.templateName, {
...content,
csrfToken: req.csrfToken(),
});
}
return res.render(ejsInfo.templateName, { ...content });
}
async miniProgram( req: Request) {
return {
csrfToken: req.csrfToken && req.csrfToken(),
};
}
async admin( req: Request): Promise<Object> {
const asset = await this.commonService.findAssets('adminResource');
if (!asset) {
return {
csrfToken: req.csrfToken && req.csrfToken(),
};
}
let content: any = {};
try {
content = JSON.parse(asset.content);
} catch {}
if (!isDev()) {
return {
...content,
csrfToken: req.csrfToken(),
};
}
return { ...content };
}
async pages( req: Request): Promise<Object> {
const asset = await this.commonService.findAssets('contentResource');
if (!asset) {
return {
csrfToken: req.csrfToken(),
};
}
let content: any = {};
try {
content = JSON.parse(asset.content);
} catch {}
if (!isDev()) {
return {
...content,
csrfToken: req.csrfToken(),
};
}
return { ...content };
}
}