import _ from 'lodash' import { Type, type Static, type FastifyPluginCallbackTypebox } from '@fastify/type-provider-typebox' import knex from '../../lib/knex.ts' const journalRoutes: FastifyPluginCallbackTypebox = (fastify, _, done) => { fastify.route({ url: '/', method: 'GET', async handler(req) { return knex('supplier').select('*').orderBy('name') }, }) fastify.route({ url: '/:id', method: 'GET', schema: { params: Type.Object({ id: Type.Number(), }), }, async handler(req) { return knex('supplier').first('*').where('id', req.params.id) }, }) fastify.route({ url: '/merge', method: 'POST', schema: { body: Type.Object({ ids: Type.Array(Type.Number()), }), }, async handler(req) { console.dir(req.body) const suppliers = await knex('supplier').select('*').whereIn('id', req.body.ids) const trx = await knex.transaction() await trx('invoice').update('supplier_id', req.body.ids[0]).whereIn('supplierId', req.body.ids.slice(1)) await trx('supplier').delete().whereIn('id', req.body.ids.slice(1)) // 556744-4301 trx.commit() return suppliers }, }) done() } export default journalRoutes