Source: Controller.js

const sqlite3 = require('sqlite3').verbose();
const Worker = require('./Model.js');
const { SQLITE } = require('../config.json');

function Controller() {
  const db = new sqlite3.Database(SQLITE.FULL, (err) => {
	  if (err) throw err;

	  this.serialize(() => this.run(Worker.createTable));
	  this.close();
  });

  this.new = (req, res) => {
    db.run(Worker.createRow(req.body), (err) => {
    	if (err) throw err;

      res.json({
        status: 200,
        massege: 'Роботки добавлен',
      });
    });
  };

  this.getAll = (req, res) => {
    db.all(Worker.index, (err, rows) => {
      if (!err) {
        res.json(rows);
      } else {
        res.json({
          status: 500,
          massege: 'Проблемы с сервером',
        });
      }
    });
  };

  this.update = (req, res) => {
    db.run(Worker.update(req.body), req.params.id, (err) => {
      if (err) throw err;

      res.json({
        status: 200,
        massege: 'Работник изменен',
      });
    });
  };

  this.delete = (req, res) => {
    db.serialize(() => {
      db.run(Worker.deleteRow('?'), req.params.id, (err) => {
        if (!err) {
          res.json({
            status: 200,
            massege: 'Удалено',
          });
        } else {
          res.json({
            status: 500,
            massege: 'Что то пошло нет так',
          });
        }
      });
    });
  };

  this.updateUserUses = (req, res) => {
    db.run(Worker.communicationOfEmployeesToUser(
      req.body.id,
      req.params.token,
    ), (err) => {
      try {
        res.json({
          status: 200,
        });
      } catch (e) {
        res.json({
          satus: 500,
        });
      }
    });
  };

  this.employeeСhange = (req, res) => {
    const params = [req.params.token, req.params.workerID];

    db.run(Worker.communicationOfEmployeesToUser, params, (err) => {
      try {
        res.json({
          status: 200,
          maseege: 'Пользовотель редактирует работника',
        });
      } catch (e) {
        res.json({
          status: 500,
          maseege: 'Проблеммы с сервером',
        });
      }
    });
  };

	/**
	 * @param {params} workerID
	 * @param {status, maseege}
	 */
  this.employeeDelete = (req, res) => {
    const params = [req.params.workerID];

    db.run(Worker.deleteEmployeesToUser, params, (err) => {
      try {
        res.json({
          status: 200,
          maseege: 'Не кто не редактирует пользовотеля',
        });
      } catch (e) {
        res.json({
          status: 500,
          maseege: 'Проблеммы с сервером',
        });
      }
    });
  };
}

module.exports = new Controller();