added business id for appointmnet and doctors removed purpose
This commit is contained in:
parent
dc7dbeeddc
commit
ac12d5dfd4
@ -7,7 +7,14 @@ const { Types } = pkg;
|
||||
export const createAppointment = async (req, res, next) => {
|
||||
try {
|
||||
const doctorId = Types.ObjectId(req.body.doctorId);
|
||||
const { doctorName, date, time, patientName, patientPhone } = req.body;
|
||||
const {
|
||||
doctorName,
|
||||
date,
|
||||
time,
|
||||
patientName,
|
||||
patientPhone,
|
||||
HealthCareProviderID,
|
||||
} = req.body;
|
||||
const appointment = await Appointment.create({
|
||||
doctorId,
|
||||
doctorName,
|
||||
@ -15,6 +22,7 @@ export const createAppointment = async (req, res, next) => {
|
||||
time,
|
||||
patientName,
|
||||
patientPhone,
|
||||
HealthCareProviderID,
|
||||
});
|
||||
res.status(201).json({
|
||||
success: true,
|
||||
|
@ -12,6 +12,12 @@ import { Specialist } from "./../Specialist/SpecialistModel.js";
|
||||
// }
|
||||
|
||||
const appointmentSchema = new mongoose.Schema({
|
||||
HealthCareProviderID: {
|
||||
type: mongoose.Schema.ObjectId,
|
||||
ref: "Businesses",
|
||||
required: true,
|
||||
},
|
||||
|
||||
doctorId: {
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: Specialist,
|
||||
|
@ -15,7 +15,7 @@ export const createBusiness = async (req, res) => {
|
||||
|
||||
const {
|
||||
business,
|
||||
purpose,
|
||||
specialization,
|
||||
country,
|
||||
language,
|
||||
state,
|
||||
@ -34,8 +34,6 @@ export const createBusiness = async (req, res) => {
|
||||
switch (true) {
|
||||
case !business:
|
||||
return res.status(500).send({ error: "Business is Required" });
|
||||
case !purpose:
|
||||
return res.status(500).send({ error: "Purpose is Required" });
|
||||
case !language:
|
||||
return res.status(500).send({ error: "Language is Required" });
|
||||
case !address_Line_1:
|
||||
@ -50,22 +48,22 @@ export const createBusiness = async (req, res) => {
|
||||
return res.status(500).send({ error: "city is Required" });
|
||||
case !country:
|
||||
return res.status(500).send({ error: "country is Required" });
|
||||
case !business_name:
|
||||
return res.status(500).send({ error: "business_name is Required" });
|
||||
case !email:
|
||||
return res.status(500).send({ error: "email is Required" });
|
||||
case !contact_Number:
|
||||
return res.status(500).send({ error: "contact_Number is Required" });
|
||||
case !contact_Person_Name:
|
||||
return res
|
||||
.status(500)
|
||||
.send({ error: "contact_Person_Name is Required" });
|
||||
case !url:
|
||||
return res.status(500).send({ error: " Business url is Required" });
|
||||
case !short_url:
|
||||
return res.status(500).send({ error: "short_url is Required" });
|
||||
}
|
||||
|
||||
// create unique url from short url and unique slug and add it to req.body
|
||||
const slug = await Business.find({ short_url: req.body?.short_url });
|
||||
const uniqueSlug =
|
||||
slug.length > 0
|
||||
? `${req.body?.short_url}-${slug.length}`
|
||||
: req.body?.short_url;
|
||||
req.body.url = `${url}${uniqueSlug}`;
|
||||
|
||||
let businesse = await Business.findOne({ email });
|
||||
if (businesse) {
|
||||
return res.status(400).json({
|
||||
@ -76,13 +74,7 @@ export const createBusiness = async (req, res) => {
|
||||
const businessWithURL = await Business.findOne({
|
||||
short_url: req.body?.short_url,
|
||||
});
|
||||
if (businessWithURL?._id) {
|
||||
if (req?.files?.image?.tempFilePath)
|
||||
fs.unlinkSync(image_file?.tempFilePath);
|
||||
return res
|
||||
.status(400)
|
||||
.json({ message: "business URL is not available!" });
|
||||
}
|
||||
|
||||
if (req?.files?.image?.tempFilePath) {
|
||||
const result = await cloudinary.v2.uploader.upload(
|
||||
image_file?.tempFilePath,
|
||||
|
@ -1,86 +1,75 @@
|
||||
import mongoose from "mongoose";
|
||||
import validator from "validator"
|
||||
import bcrypt from "bcryptjs"
|
||||
import jwt from "jsonwebtoken"
|
||||
import crypto from "crypto"
|
||||
import validator from "validator";
|
||||
import bcrypt from "bcryptjs";
|
||||
import jwt from "jsonwebtoken";
|
||||
import crypto from "crypto";
|
||||
const { Schema, model } = mongoose;
|
||||
|
||||
const BusinessSchema = new Schema(
|
||||
{
|
||||
{
|
||||
business: { type: String, required: true },
|
||||
|
||||
|
||||
business: { type: String, required: true },
|
||||
purpose: { type: String, required: true },
|
||||
|
||||
language: [{ type: Array, default: [], required: true }],
|
||||
//contacts
|
||||
business_name: {
|
||||
type: String,
|
||||
required: [true, "Please Enter Your business_name"],
|
||||
maxLength: [50, "business_name cannot exceed 30 characters"],
|
||||
minLength: [3, "business_name should have more than 3 characters"],
|
||||
}, email: {
|
||||
type: String,
|
||||
required: [true, "Please Enter Your Email"],
|
||||
|
||||
unique: [true, "Email already exist ! please try with diffent email"],
|
||||
|
||||
|
||||
validate: [validator.isEmail, "Please Enter a valid Email"],
|
||||
},
|
||||
password: {
|
||||
type: String,
|
||||
required: [true, "Please Enter Your Password"],
|
||||
minLength: [6, "Password should be greater than 6 characters"],
|
||||
select: false,//find not got passpord
|
||||
},
|
||||
|
||||
contact_Number: { type: Number, required: true },
|
||||
contact_Person_Name: { type: String, required: true },
|
||||
|
||||
url: { type: String, default: "" },
|
||||
short_url: { type: String, default: "" },
|
||||
banner: { type: Object, default: { url: "", public_id: "" } },
|
||||
///
|
||||
//address
|
||||
address_Line_1: { type: String, required: true },
|
||||
address_Line_2: { type: String, required: true },
|
||||
country: { type: String, required: true, default: "" },
|
||||
state: { type: String, required: true, default: "" },
|
||||
city: { type: String, required: true },
|
||||
|
||||
|
||||
|
||||
pincode: { type: Number, required: true },
|
||||
|
||||
|
||||
added_by: {
|
||||
type: mongoose.Schema.ObjectId,
|
||||
ref: "User",
|
||||
required: true,
|
||||
},
|
||||
specialization: {
|
||||
type: String,
|
||||
},
|
||||
{ timestamps: true }
|
||||
|
||||
language: [{ type: Array, default: [], required: true }],
|
||||
//contacts
|
||||
business_name: {
|
||||
type: String,
|
||||
},
|
||||
email: {
|
||||
type: String,
|
||||
},
|
||||
password: {
|
||||
type: String,
|
||||
required: [true, "Please Enter Your Password"],
|
||||
minLength: [6, "Password should be greater than 6 characters"],
|
||||
select: false, //find not got passpord
|
||||
},
|
||||
|
||||
contact_Number: { type: Number, required: true },
|
||||
contact_Person_Name: { type: String, required: true },
|
||||
|
||||
url: { type: String, default: "" },
|
||||
short_url: { type: String, default: "" },
|
||||
banner: { type: Object, default: { url: "", public_id: "" } },
|
||||
///
|
||||
//address
|
||||
address_Line_1: { type: String, required: true },
|
||||
address_Line_2: { type: String, required: true },
|
||||
country: { type: String, required: true, default: "" },
|
||||
state: { type: String, required: true, default: "" },
|
||||
city: { type: String, required: true },
|
||||
|
||||
pincode: { type: Number, required: true },
|
||||
|
||||
added_by: {
|
||||
type: mongoose.Schema.ObjectId,
|
||||
ref: "User",
|
||||
required: true,
|
||||
},
|
||||
},
|
||||
{ timestamps: true }
|
||||
);
|
||||
|
||||
BusinessSchema.pre("save", async function (next) {
|
||||
if (!this.isModified("password")) {
|
||||
next();
|
||||
}
|
||||
if (!this.isModified("password")) {
|
||||
next();
|
||||
}
|
||||
|
||||
this.password = await bcrypt.hash(this.password, 12);
|
||||
this.password = await bcrypt.hash(this.password, 12);
|
||||
});
|
||||
|
||||
// JWT TOKEN
|
||||
BusinessSchema.methods.getJWTToken = function () {
|
||||
return jwt.sign({ id: this._id }, process.env.JWT_SECRET);
|
||||
return jwt.sign({ id: this._id }, process.env.JWT_SECRET);
|
||||
};
|
||||
|
||||
|
||||
// Compare Password
|
||||
|
||||
BusinessSchema.methods.comparePassword = async function (password) {
|
||||
return await bcrypt.compare(password, this.password);
|
||||
return await bcrypt.compare(password, this.password);
|
||||
};
|
||||
|
||||
export const Business = model("Business", BusinessSchema);
|
||||
|
@ -34,6 +34,12 @@ const daysAvailableSchema = new mongoose.Schema({
|
||||
});
|
||||
|
||||
const specialistSchema = new mongoose.Schema({
|
||||
HealthCareProviderID: {
|
||||
type: mongoose.Schema.ObjectId,
|
||||
ref: "Businesses",
|
||||
required: true,
|
||||
},
|
||||
|
||||
specialistName: {
|
||||
type: String,
|
||||
required: [true, "Please enter specialist name"],
|
||||
|
Loading…
Reference in New Issue
Block a user