Sindbad~EG File Manager

Current Path : /home/infinitibizsol/.trash/node_modules.8/.cache/esm/
Upload File :
Current File : /home/infinitibizsol/.trash/node_modules.8/.cache/esm/323b03414f92af2d.js

let db,AppError,catchAsync,successResponse;_4f9‍.x([["default",()=>_4f9‍.o]]);_4f9‍.w("../../model/index",[["default",["db"],function(v){db=v}]]);_4f9‍.w("../../utils/apiError",[["default",["AppError"],function(v){AppError=v}]]);_4f9‍.w("../../utils/catchAsync",[["default",["catchAsync"],function(v){catchAsync=v}]]);_4f9‍.w("../../utils/responseFormat",[["successResponse",["successResponse"],function(v){successResponse=v}]]);



const index = catchAsync(async (req, res, next) => {
  //contact_id or user_id
  const query = req.query;
  let allData = await db.Policy.find(query)
    .populate("user_id", "_id first_name last_name")
    .populate("contact_id", "_id first_name last_name");
  return successResponse(res, allData);
});

const getSinglePolicy = catchAsync(async (req, res, next) => {
  const _id = req.params.id;

  const policyPromise = db.Policy.findOne({ _id })
    .populate("user_id", "_id first_name last_name email")
    .populate("contact_id", "_id first_name last_name email");

  const additionalInfoPromise = db.AdditionalInfo.find({ policy_id: _id });
  const additionalInterestPromise = db.AdditionalInterest.find({
    policy_id: _id,
  });
  const binderInfoPromise = db.BinderInfo.findOne({ policy_id: _id });
  const commercialAdditionalInfoPromise = db.CommercialAdditionalInfo.findOne({
    policy_id: _id,
  });
  const contractorUnderwritingPromise = db.ContractorUnderwriting.findOne({
    policy_id: _id,
  });
  const extendedPolicyInfoPromise = db.ExtendedPolicyInfo.find({
    policy_id: _id,
  });
  const generalLiabilityUnderwritingPromise =
    db.GeneralLiabilityUnderwriting.find({
      policy_id: _id,
    });
  const locationSchedulePromise = db.LocationSchedule.find({ policy_id: _id });
  const namedInsuredPromise = db.NamedInsured.find({ policy_id: _id });
  const natureOfBusinessPromise = db.NatureOfBusiness.findOne({
    policy_id: _id,
  });
  const paymentPlanPromise = db.PaymentPlan.findOne({ policy_id: _id });
  const policyAttachmentsPromise = db.PolicyAttachment.find({ policy_id: _id });
  const policyFormPromise = db.PolicyForm.find({ policy_id: _id });
  const policyFeePromise = db.Fee.find({ policy_id: _id });
  const policyInfoPromise = db.PolicyInfo.findOne({ policy_id: _id });
  const priorPolicyInfoPromise = db.PriorPolicyInfo.findOne({ policy_id: _id });
  const productPromise = db.Product.find({ policy_id: _id });
  const underwritingQuestionPromise = db.UnderwritingQuestion.find({
    policy_id: _id,
  });

  const [
    policy,
    additionalInfo,
    additionalInterest,
    binderInfo,
    commercialAdditionalInfo,
    contractorUnderwriting,
    extendedPolicyInfo,
    generalLiabilityUnderwriting,
    locationSchedule,
    namedInsured,
    natureOfBusiness,
    paymentPlan,
    policyAttachments,
    policyForm,
    policyFee,
    policyInfo,
    priorPolicyInfo,
    product,
    underwritingQuestion,
  ] = await Promise.all([
    policyPromise,
    additionalInfoPromise,
    additionalInterestPromise,
    binderInfoPromise,
    commercialAdditionalInfoPromise,
    contractorUnderwritingPromise,
    extendedPolicyInfoPromise,
    generalLiabilityUnderwritingPromise,
    locationSchedulePromise,
    namedInsuredPromise,
    natureOfBusinessPromise,
    paymentPlanPromise,
    policyAttachmentsPromise,
    policyFormPromise,
    policyFeePromise,
    policyInfoPromise,
    priorPolicyInfoPromise,
    productPromise,
    underwritingQuestionPromise,
  ]);

  return successResponse(res, {
    policy,
    additionalInfo,
    additionalInterest,
    binderInfo,
    commercialAdditionalInfo,
    contractorUnderwriting,
    extendedPolicyInfo,
    generalLiabilityUnderwriting,
    locationSchedule,
    namedInsured,
    natureOfBusiness,
    paymentPlan,
    policyAttachments,
    policyForm,
    policyFee,
    policyInfo,
    priorPolicyInfo,
    product,
    underwritingQuestion,
  });
});

const add = catchAsync(async (req, res, next) => {
  if (!req.body.contact_id && !req.body.user_id) {
    return next(new AppError("contact_id or user_id is required", 500));
  }

  const policy = new db.Policy(req.body);
  await policy.save();

  const namedInsured = new db.BinderInfo({ policy_id: policy._id });
  const locationSchedule = new db.PolicyInfo({ policy_id: policy._id });
  const paymentPlan = new db.PaymentPlan({ policy_id: policy._id });
  const natureOfBusiness = new db.NatureOfBusiness({ policy_id: policy._id });
  const priorPolicyInfo = new db.PriorPolicyInfo({ policy_id: policy._id });
  const commercialAdditionalInfo = new db.CommercialAdditionalInfo({
    policy_id: policy._id,
  });
  const contractorUnderwriting = new db.ContractorUnderwriting({
    policy_id: policy._id,
  });

  await Promise.all([
    namedInsured.save(),
    locationSchedule.save(),
    paymentPlan.save(),
    natureOfBusiness.save(),
    priorPolicyInfo.save(),
    commercialAdditionalInfo.save(),
    contractorUnderwriting.save(),
  ]);

  return successResponse(
    res,
    {
      policy,
      namedInsured,
      locationSchedule,
      paymentPlan,
      natureOfBusiness,
      priorPolicyInfo,
      commercialAdditionalInfo,
      contractorUnderwriting,
    },
    "Policy saved successfully"
  );
});

const edit = catchAsync(async (req, res, next) => {
  let result = await db.Policy.findByIdAndUpdate(
    { _id: req.params.id },
    { $set: req.body },
    { new: true }
  );
  if (!result) {
    return next(new AppError("No data found.", 404));
  }
  return successResponse(res, result, "Policy updated successfully");
});

const deleteData = catchAsync(async (req, res, next) => {
  let policy = await db.Policy.findById({
    _id: req.params.id,
  });
  if (!policy) {
    return next(new AppError("No data found.", 404));
  }
  await policy.remove();
  return successResponse(res, policy, "Policy deleted successfully");
});

_4f9‍.d({ getSinglePolicy, index, add, edit, deleteData });

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists