UNPKG

nammaniru_common_service

Version:

The service will contain all the functionality which is common for both shop and customer

106 lines (99 loc) 3.79 kB
import mongoose, { Schema } from "mongoose"; import { DeliveryPersonType } from "../../types/DeliveryPersonType/DeliveryPersonType"; const DeliveryPersonSchema = new Schema( { ShopID: { type: String, required: true, }, DeliveryPersonID: { type: String, required: true, unique: true }, AssignedOrderID: { type: String, }, AssignedItemOrderID: { type: String, required: false }, AvailableForDelivery: { type: Boolean, required: true } } ); DeliveryPersonSchema.statics.fetchByShopIDAndDeliveryPersonID = async function (shopID: String, deliveryPersonID: String): Promise<DeliveryPersonType | null> { let deliveryPerson: DeliveryPersonType | null = null; console.log("shopID received inside DeliveryPersonSchema:", shopID); console.log("deliveryPersonID received inside DeliveryPersonSchema:", deliveryPersonID); try { deliveryPerson = await this.findOne( { ShopID: shopID, DeliveryPersonID: deliveryPersonID } ); } catch (e) { console.log("Error fetching record from DeliveryPersonSchema:", e); } console.log("returning deliveryPerson fetched from the record:", deliveryPerson); return deliveryPerson; } DeliveryPersonSchema.statics.fetchByShopID = async function (shopID: String): Promise<DeliveryPersonType[] | null> { let deliveryPersonList: DeliveryPersonType[] | null = null; console.log("shopID received inside fetchByShopID:", shopID); try { deliveryPersonList = this.find({ ShopID: shopID }); } catch (e) { console.log("Error fetching delivery person list:", e); } console.log("deliveryPersonList:", deliveryPersonList); return deliveryPersonList; } //this function is to fetch the details of delivery person currently assigned to the given OrderID and ItemOrderID DeliveryPersonSchema.statics.fetchByOrderIDAndItemOrderID = async function (orderID: String, itemOrderID: String): Promise<DeliveryPersonType | null> { let deliveryPerson: DeliveryPersonType | null = null; console.log("orderID received inside DeliveryPersonSchema:", orderID); console.log("itemOrderID received inside DeliveryPersonSchema:", itemOrderID); try { deliveryPerson = await this.findOne( { // ShopID: shopID, AssignedOrderID: orderID, AssignedItemOrderID: itemOrderID } ); } catch (e) { console.log("Error fetching record from DeliveryPersonSchema:", e); } console.log("returning deliveryPerson fetched from the record:", deliveryPerson); return deliveryPerson; } DeliveryPersonSchema.statics.fetchByDeliveryPersonID = async function (deliveryPersonID: String): Promise<DeliveryPersonType | null> { let deliveryPerson: DeliveryPersonType | null = null; console.log("inside fetchByDeliveryPersonID method"); console.log("deliveryPersonID received inside DeliveryPersonSchema:", deliveryPersonID); try { deliveryPerson = await this.findOne( { DeliveryPersonID: deliveryPersonID } ); } catch (e) { console.log("Error fetching record from DeliveryPersonSchema:", e); } console.log("returning deliveryPerson fetched from the record:", deliveryPerson); return deliveryPerson; } module.exports = mongoose.model("DeliveryPersonSchema", DeliveryPersonSchema)