sannimichaelse/Parcel-Delivery

View on GitHub
server/controllers/DummyController.js

Summary

Maintainability
A
0 mins
Test Coverage
import helperClass from '../utilities/dummyHelper';
import dataStore from '../utilities/dummyData/index';
/**
 * @exports
 * @class DummyController
 */
class DummyController {
  /**
   * Creates a new parcel
   * @staticmethod
   * @param  {object} req - parcel object
   * @param {object} res - Response object
   * @return {json} res.json
   */
  static createNewParcel(req, res) {
    const { uuid, parcelId } = req.body;
    const position = helperClass.findParcelByUser(dataStore, uuid, parcelId);
    if (position > -1) {
      return res.status(400).json({
        status: 400,
        message:
          'Parcel Already Exists. Make sure uuid and parcelId are unique',
      });
    }
    dataStore.push(req.body);
    return res.status(201).json({
      status: 201,
      message: 'New parcel created successfully',
    });
  }
  /**
   * Find a parcel by id
   * @staticmethod
   * @param  {object} req - parcel object
   * @param {object} res - Response object
   * @return {json} res.json
   */
  static findParcelById(req, res) {
    const { parcelId } = req.params;
    const position = helperClass.findUserByParcelId(dataStore, parcelId);
    if (position > -1) {
      return res.status(200).json({
        status: 200,
        message: 'Parcel found',
        data: dataStore[position],
      });
    }

    return res.status(400).json({
      status: 400,
      message: 'Parcel not found',
    });
  }
  /**
   * Get all parcels
   * @staticmethod
   * @param  {object} req - parcel object
   * @param {object} res - Response object
   * @return {json} res.json
   */
  static getAllParcels(req, res) {
    return res.status(200).json({
      status: 200,
      message: 'Successfully fetched all parcels',
      data: dataStore,
    });
  }

  /**
   * Get all parcels
   * @staticmethod
   * @param  {object} req - parcel object
   * @param {object} res - Response object
   * @return {json} res.json
   */
  static getParcelByUserId(req, res) {
    const { userId } = req.params;

    const result = helperClass.findAllParcelByUserId(dataStore, userId);

    if (result === undefined || result.length === 0) {
      return res.status(400).json({
        status: 400,
        message: 'Parcel with userID not found',
      });
    }
    return res.status(200).json({
      status: 200,
      message: 'Parcel found',
      data: result,
    });
  }
  /**
   * Cancel parcel by parcel id
   * @staticmethod
   * @param  {object} req - parcel object
   * @param {object} res - Response object
   * @return {json} res.json
   */
  static cancelByParcelId(req, res) {
    const { parcelId } = req.params;

    const position = helperClass.findUserByParcelId(dataStore, parcelId);
    if (position > -1) {
      dataStore[position].parcelStatus = 'Canceled';
      return res.status(200).json({
        status: 200,
        message: 'Parcel Order Canceled',
        data: dataStore[position],
      });
    }
    return res.status(400).json({
      status: 400,
      message: 'parcel with this id is not found',
    });
  }
}

export default DummyController;