58 lines
1.0 KiB
TypeScript
58 lines
1.0 KiB
TypeScript
import { app } from '@/app.ts';
|
|
import { Config } from './model/config.ts';
|
|
app
|
|
.route({
|
|
path: 'config',
|
|
key: 'list',
|
|
})
|
|
.define(async (ctx) => {
|
|
ctx.body = await Config.findAll();
|
|
})
|
|
.addTo(app);
|
|
|
|
app
|
|
.route({
|
|
path: 'config',
|
|
key: 'meGet',
|
|
})
|
|
.define(async (ctx) => {
|
|
const config = await Config.findOne({
|
|
where: {
|
|
key: 'me',
|
|
},
|
|
logging: false,
|
|
});
|
|
ctx.body = config;
|
|
})
|
|
.addTo(app);
|
|
|
|
app
|
|
.route({
|
|
path: 'config',
|
|
key: 'meSet',
|
|
})
|
|
.define(async (ctx) => {
|
|
const { data } = ctx.query;
|
|
if (!data) {
|
|
ctx.throw(400, 'data is required');
|
|
}
|
|
let config = await Config.findOne({
|
|
where: { key: 'me' }, // 自定义条件
|
|
logging: false,
|
|
});
|
|
|
|
if (!config) {
|
|
config = await Config.create({
|
|
key: 'me',
|
|
value: data,
|
|
});
|
|
ctx.body = config;
|
|
return;
|
|
} else {
|
|
config.value = data;
|
|
await config.save();
|
|
ctx.body = config;
|
|
}
|
|
})
|
|
.addTo(app);
|