mozilla/publish.webmaker.org

View on GitHub
api/modules/files/routes/delete.js

Summary

Maintainability
A
40 mins
Test Coverage
"use strict";

const Joi = require(`joi`);

const Errors = require(`../../../classes/errors`);
const Prerequistes = require(`../../../classes/prerequisites`);

const FilesModel = require(`../model`);
const filesController = require(`../controller`);

module.exports = [{
  method: `DELETE`,
  path: `/files/{id}`,
  config: {
    pre: [
      Prerequistes.confirmRecordExists(FilesModel, {
        mode: `param`,
        requestKey: `id`,
        columns: [`id`, `project_id`]
      }),
      Prerequistes.validateUser(),
      Prerequistes.validateOwnership(false, FilesModel.userForFile, true)
    ],
    handler: filesController.delete.bind(filesController),
    description: `Delete a single file object based on \`id\`.`,
    validate: {
      params: {
        id: Joi.number().integer().required()
      },
      failAction: Errors.id
    }
  }
}];