UNPKG

mongoose-restapi-ui

Version:

Rest api library for your mongoose apps, with react ui: mongoose-restapi-ui-component react library

62 lines 2.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var express = require('express'); var bodyParser = require('body-parser'); var mongoose = require("mongoose"); var app = express(); var router_1 = require("../src/router"); app.use(bodyParser.json()); mongoose.connect('mongodb://localhost:27017/database'); var router = router_1.ApiRouter(); var customer = mongoose.model('Customer', new mongoose.Schema({ complex: { name: { type: String }, number: { type: Number, label: true } }, name: { type: String, required: true }, comment: { type: String }, arraycomment: [{ type: String }], arrayint: [{ type: Number }], arrayDate: [{ type: Date }], dateField: { type: Date } })); var provider = mongoose.model('Provider', new mongoose.Schema({ name: { type: [{ hola: { type: String, required: true, label: true }, adios: { type: String, required: true } }], required: true }, complex: { label: { type: String, label: true } }, complexArrayRef: [{ name: String, customer: { ref: 'Customer', type: mongoose.Schema.Types.ObjectId, label: true } }], customer: [{ ref: 'Customer', type: mongoose.Schema.Types.ObjectId }], comment: { type: String } })); var User = mongoose.model('User', new mongoose.Schema({ name: String, super_admin: Boolean, roles: [mongoose.Schema.Types.ObjectId] })); var userId = new User({ super_admin: true }); app.use(function (req, res, next) { req.user = userId; next(); }); router.setConnection(mongoose); router.setModel('/customer', customer, { name: 'name', hasAddPermission: function (req, cb) { return cb(null, true); } }); router.setModel('/provider', provider, { hasAddPermission: function (req, cb) { return cb(null, true); } }); router.setRoleEndpoints(); app.use('/', router); app.get('/tree', router.publishUiTree()); app.listen(3030, function () { console.log('Express server listening on port 3000'); }); module.exports = { customer: customer, provider: provider }; //# sourceMappingURL=index.js.map