UNPKG

kritsana135-hooray-server

Version:

for server

75 lines (67 loc) 1.53 kB
import mongoose, { connection } from "mongoose" 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( { logo: { type: String, required: false, trim: true, }, logoDark: { type: String, required: false, trim: true, }, logoLight: { type: String, required: false, trim: true, }, favicon: { type: String, required: false, trim: true, }, webTitle: { type: String, required: false, trim: true, }, background: { type: String, required: false, trim: true, }, primaryColor: { type: String, required: false, trim: true, default: "#ffffff", }, secondaryColor: { type: String, required: false, trim: true, default: "#ffffff", }, }, { timestamps: true } ) schema.plugin(mongooseDelete) schema.plugin(mongoosePaginate) schema.pre("save", async function (next) { // Hash the password before saving the user model next() }) schema.post("save", (error, doc, next) => { if (error.code === 11000) { console.log(error) next( new ApolloError(CAN_NOT_SAVE_TO_DB.message.en, CAN_NOT_SAVE_TO_DB.code) ) } else next(error) }) export default (connection) => connection.model("themes", schema, "themes")