HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-10-0-8-47 6.8.0-1021-aws #23~22.04.1-Ubuntu SMP Tue Dec 10 16:31:58 UTC 2024 aarch64
User: ubuntu (1000)
PHP: 8.1.2-1ubuntu2.22
Disabled: NONE
Upload Files
File: /var/www/javago-api-updates/src/middleware/validator.js
import exp from "constants";
import niv from "node-input-validator";

export async function createUserValidator(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    name: "required|string",
    email: "required|email",
    password: "required|string",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function loginValidator(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    email: "required|email",
    password: "required|string",
    device_id: "required|string",
    device_type: "required|integer",
    fcm_token: "required|string",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function otpVerifyValidator(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    email: "required|email",
    otp: "required",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function sendOtpValidator(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    email: "required|email",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function s3BucketDetailsValidator(req, res, next) {
  const objValidation = new niv.Validator(req.query, {
    file_type: "required|string",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function updateUserValidator(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    name: "required|string",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function updateFcmValidator(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    fcm_token: "required|string",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function deleteUser(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    delete_reason: "required|string",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function appVersionValidator(req, res, next) {
  const objValidation = new niv.Validator(req.query, {
    os_type: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function notificationValidator(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    notification_status: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function getInHouseMenu(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    page_no: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function GetInHouseItemById(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    item_id: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function saveOrder(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    items: "required|array",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

//Delete Item in In house Order
export async function deleteInhouseItem(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    item_id: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// create Group
export async function createGroup(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    group_name: "required|string",
    ///TODO need to fix this while making the code live
    //group_profile: 'required|string',
    // group_members: 'required|array',
    latitude: "required|string",
    longitude: "required|string",
    group_cafes: "required|array",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function getCafeList(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    page: "required|integer",
    group_id: "required|integer",
    latitude: "required|numeric",
    longitude: "required|numeric",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function GetGroupDetails(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    group_id: "required|integer",
    latitude: "required|string",
    longitude: "required|string",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function GroupDetails(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    group_id: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function getPeopleList(req, res, next) {
  const objValidation = new niv.Validator(req.query, {
    page: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function getSearchPeopleList(req, res, next) {
  const objValidation = new niv.Validator(req.query, {
    page: "required|integer",
    user_name: "required|string",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// add additional cafe in group
export async function addCafe(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    group_id: "required|integer",
    group_cafes: "required|array",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function removeUser(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    group_id: "required|integer",
    user_id: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}
// cafe category list validation

export async function cafeCategoryList(req, res, next) {
  const objValidation = new niv.Validator(req.query, {
    cafe_id: "required|integer",
    page: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// cafe category list validation

export async function cafeListValidator(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    latitude: "required|string",
    longitude: "required|string",
    page: "required|integer",
    filter_flag: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// search cafe validation

export async function searchCafeListValidator(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    latitude: "required|string",
    longitude: "required|string",
    page: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// search cafe validation by cafe name

export async function searchByCafeNameValidator(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    latitude: "required|string",
    longitude: "required|string",
    cafe_name: "required|string",
    page: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// cafe favorite validation

export async function cafeFavoriteValidation(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    cafe_id: "required|integer",
    is_favorite: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// request cafe validation

export async function cafeRequestValidation(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    cafe_name: "required|string",
    postcode: "required|string",
    //email: 'required|email',
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// get cafe Item list validation

export async function cafeItemList(req, res, next) {
  const objValidation = new niv.Validator(req.query, {
    menu_id: "required|integer",
    page: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function addgroupcode(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    group_code: "required|numeric|maxLength:6",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// get cafe details
export async function cafeDetailValidation(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    cafe_id: "required|integer",
    user_latitude: "required|string",
    user_longitude: "required|string",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// get cafe item details
export async function cafeItemDetailValidation(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    item_id: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// suggested cafe item list
export async function cafeSuggestedItemValidation(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    item_id: "required",
    page: "required",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// add members in group
export async function addGroupMember(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    group_id: "required|integer",
    members: "required|array",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// save group coffee run
export async function saveGroupCoffeeRun(req, res, next) {
  const validationRules = {
    group_id: "required|integer",
    cafe_id: "integer",
    request_endtime: "required|integer",
    users: "required|array",
  };

  if (req.body.type === 1) {
    validationRules.cafe_id = "required|integer";
  }

  const objValidation = new niv.Validator(req.body, validationRules);
  const matched = await objValidation.check();

  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// get group coffee run data
export async function getGroupCoffeeRun(req, res, next) {
  const objValidation = new niv.Validator(req.query, {
    group_id: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// place order validation check

export async function placeOrder(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    cafe_id: "required|integer",
    is_main_order: "required|integer|in:0,1",
    order_item_array: "required|array",
    items_amount: "required|numeric",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

//place individual order validation check

export async function placeIndividualOrder(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    cafe_id: "required|integer",
    is_main_order: "required|integer|in:0,1",
    order_item_array: "required|array",
    items_amount: "required|numeric",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}
export async function individualOrderList(req, res, next) {
  const objValidation = new niv.Validator(req.query, {
    order_id: "required|integer",
    cafe_id: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// save order
export async function cafeSaveOrder(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    cafe_id: "required|integer",
    is_main_order: "required|integer|in:0,1",
    order_item_array: "required|array",
    total_amount: "required|numeric",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// save Individual order
export async function cafeSaveIndividualOrder(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    cafe_id: "required|integer",
    is_main_order: "required|integer|in:0,1",
    order_item_array: "required|array",
    total_amount: "required|numeric",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// get Previous  Order
export async function getPreviousOrder(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    cafe_id: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// get Previous  Order
export async function checkClickAndCollect(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    cafe_id: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// change order status
export async function changeOrderStatus(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    flag: "required|integer|in:1,2",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// check redeem
export async function redeemValidation(req, res, next) {
  const objValidation = new niv.Validator(req.query, {
    cafe_id: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

// get order by group ID
export async function orderListByGroup(req, res, next) {
  const objValidation = new niv.Validator(req.query, {
    group_id: "required|integer",
    page: "required|integer",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

//get group coffee run orders
export async function getGroupCoffeeRunOrders(req, res, next) {
  if (!req.body.group_coffee_run_id && !req.body.group_id) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: "At least one of 'group_coffee_run_id' or 'group_id' is required",
    });
  }
  const objValidation = new niv.Validator(req.body, {
    group_coffee_run_id: 'requiredIf:group_id,=""',
    group_id: 'requiredIf:group_coffee_run_id,=""',
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    req.group_coffee_run_id = req.body.group_coffee_run_id;
    next();
  }
}

//Mark order Collected
export async function markOrderCollected(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    group_coffee_run_id: "required",
    type: "required",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    req.group_coffee_run_id = req.body.group_coffee_run_id;
    next();
  }
}

export async function createCafeGoToOrderValidation(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    cafe_id: "required",
    order_items: "required",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function updateCafeGoToOrderValidation(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    id: "required",
    order_items: "required",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function removeCafeGoToOrderValidation(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    cafe_id: "required",
    id: "required",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

//Mark individual-order Collected
export async function markIndividualOrderCollected(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    order_id: "required",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

//get remaining click and collect orders
export async function getRemainingClickAndCollectOrders(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    cafe_id: "required",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function joinedByCode(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    code: "required",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function orderStampAvailability(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    cafe_id: "required",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function isUserEligibleForCoffeeRunDiscount(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    group_id: "required",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}

export async function applyCoffeeRunDiscount(req, res, next) {
  const objValidation = new niv.Validator(req.body, {
    order_id: "required",
    requestUniqueId: "required",
    discount_amount: "required",
  });
  const matched = await objValidation.check();
  if (!matched) {
    return res.status(422).send({
      status: 422,
      message: "Validation Error",
      error: objValidation.errors,
    });
  } else {
    next();
  }
}