import { Body, Get, Controller, Post, QueryParams } from '@gem-mine/routing-controllers'
import { db } from '../db'

@Controller('/template')
export default class {
  @Get('/')
  async getList(@QueryParams() { 
    template_id,
  }: {
    template_id: string
  }) {
    return {
      data: [
        await db.get('template')
          .find({
            template_id
          }).value()
      ].filter(Boolean)
    }
  }

  @Post('/')
  async createOne(@Body() modal: { template_id: string, token: string }) {
    const data = {
      template_id: modal.template_id,
      token: modal.token
    }
    await db.get('template')
      .updateOrAdd(data, 'template_id')
      .write()
    return {
      data
    }
  }
}
