UNPKG

kritsana135-hooray-server

Version:

for server

101 lines (94 loc) 2.7 kB
import mongoose from "mongoose" import validator from "validator" import { ApolloError } from "apollo-server" import mongooseDelete from "mongoosejs-soft-delete" import mongoosePaginate from "mongoose-paginate-v2" import { CAN_NOT_SAVE_TO_DB } from "../constants/errors/utils" const schema = new mongoose.Schema( { name: { type: String, required: [true, "Name is required"], trim: true, }, serviceKey: { type: String, required: [true, "ServiceKey is required"], trim: true, }, logo: { type: String, trim: true, }, methodUpdate: { type: String, required: [false, "methodUpddate is required"], trim: true, }, graphqlEndpointSuperAdmin: { type: String, required: [true, "graphql Endpoint Admin is required"], trim: true, }, graphqlEndpointAdmin: { type: String, required: [true, "graphql Endpoint Admin is required"], trim: true, }, graphqlEndpointClient: { type: String, required: [false, "graphql Endpoint Client is required"], trim: true, }, restEndpointSuperAdmin: { type: String, required: [false, "restful Endpoint Admin is required"], trim: true, }, restEndpointAdmin: { type: String, required: [false, "restful Endpoint Admin is required"], trim: true, }, restEndpointClient: { type: String, required: [false, "restful Endpoint Client is required"], trim: true, }, // appUpdateServiceUrl: { // type: String, // required: [false, 'appUpdateServiceUrl is required'], // trim: true, // }, isActive: { type: Boolean, required: [false, "isActive is required"], trim: true, default: true, }, // featureKeys: [feature], // userPermissions: [userPermission] }, { timestamps: true, versionKey: false } ) schema.plugin(mongooseDelete) schema.plugin(mongoosePaginate) schema.pre("save", async (next) => { next() }) // schema.post('find', function(result) { // console.log(this instanceof mongoose.Query); // true // // prints returned documents // console.log('find() returned ' + JSON.stringify(result)); // // prints number of milliseconds the query took // console.log('find() took ' + (Date.now() - this.start) + ' millis'); // // new ApolloError("Test Pre find before update") // }); schema.post("save", (error, doc, next) => { if (error.code === 11000) { next( new ApolloError(CAN_NOT_SAVE_TO_DB.message.en, CAN_NOT_SAVE_TO_DB.code) ) } else next(error) }) export default (connection) => connection.model("services", schema, "services")