Sindbad~EG File Manager

Current Path : /home/infinitibizsol/.trash/controllers.8/common/
Upload File :
Current File : /home/infinitibizsol/.trash/controllers.8/common/socialMedia.js

import db from "../../model/index";
import AppError from "../../utils/apiError";
import catchAsync from "../../utils/catchAsync";
import { successResponse } from "../../utils/responseFormat";
const validateDuplicateEntry = async (query) => {
  let document = await db.SocialMedia.findOne(query);
  if (document) return true;
  return false;
};
const index = catchAsync(async (req, res, next) => {
  const query = req.query;
  query.user_id = query.contact_id ? undefined : req.user._id;
  let allData = await db.SocialMedia.find(query);
  return successResponse(res, allData);
});

const add = catchAsync(async (req, res, next) => {
  let { contact_id } = req.body;
  let user_id = contact_id ? undefined : req.user._id;
  req.body.user_id = user_id;
  const isDuplicate = await validateDuplicateEntry({ contact_id, user_id });
  if (isDuplicate) {
    return next(new AppError("Duplicate entry is not allowed.", 404));
  }
  const socialMedia = new db.SocialMedia(req.body);
  await socialMedia.save();
  return successResponse(res, socialMedia, "socialMedia saved successfully.");
});

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

const view = catchAsync(async (req, res, next) => {
  let socialMedia = await db.SocialMedia.findOne({ _id: req.params.id });
  if (!socialMedia) {
    return next(new AppError("No data found.", 404));
  }
  return successResponse(res, socialMedia);
});

const deleteData = catchAsync(async (req, res, next) => {
  const socialMedia_id = req.params.id;
  const lead = await db.SocialMedia.findByIdAndDelete({
    _id: socialMedia_id,
  });

  if (!lead) {
    return next(new AppError("No data found.", 404));
  }
  return successResponse(
    res,
    lead,
    "social-media and related data deleted successfully."
  );
});

export default { index, add, edit, view, deleteData };

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