const {
  getCodeListByTypeId,
  getCodeById,
  addCode: addCodeService,
  updateCode: updateCodeService,
} = require('../service')
const { sendResponse } = require('../../../utils')

const getCodeList = async (req, res) => {
  const { typeId } = req.params
  const gCodeList = await getCodeListByTypeId(typeId)

  sendResponse({ res, status: 200, message: '', data: gCodeList })
}

const getCode = async (req, res) => {
  const { id } = req.params
  const gCode = await getCodeById(id)

  sendResponse({ res, status: 200, message: '', data: gCode })
}

const addCode = async (req, res) => {
  const { typeId, code, name, description } = req.body
  const aCode = await addCodeService(req.body)

  sendResponse({ res, status: 200, message: '', data: aCode })
}

const updateCode = async (req, res) => {
  const { id } = req.params
  if (!id) {
    sendResponse({ res, status: 400, message: 'id is required', data: null })
    return
  }
  const getCode = await getCodeById(id)
  if (getCode) {
    const uCode = await updateCodeService(id, req.body)
    sendResponse({ res, status: 200, message: '', data: uCode })
  } else {
    sendResponse({ res, status: 400, message: 'id not found', data: null })
  }
}

module.exports = {
  getCodeList,
  getCode,
  addCode,
  updateCode,
}