Essential backend functionality, including logins.
This commit is contained in:
28
api/models/bookModel.js
Normal file
28
api/models/bookModel.js
Normal file
@@ -0,0 +1,28 @@
|
||||
'use strict';
|
||||
const mongoose = require('mongoose');
|
||||
const Schema = mongoose.Schema;
|
||||
|
||||
const BookSchema = new Schema({
|
||||
title: {
|
||||
type: String,
|
||||
required: 'Book title missing'
|
||||
},
|
||||
publication_date: {
|
||||
type: Date,
|
||||
default: Date(0)
|
||||
},
|
||||
quantity: {
|
||||
type: Number,
|
||||
default: 1
|
||||
},
|
||||
amount_loaned: {
|
||||
type: Number,
|
||||
default: 0
|
||||
},
|
||||
isbn13: {
|
||||
type: String,
|
||||
required: 'Book ISBN-13 missing'
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = mongoose.model('Book', BookSchema);
|
||||
70
api/models/userModel.js
Normal file
70
api/models/userModel.js
Normal file
@@ -0,0 +1,70 @@
|
||||
'use strict';
|
||||
const mongoose = require('mongoose');
|
||||
const Schema = mongoose.Schema;
|
||||
|
||||
const permission_set = {
|
||||
add_books: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
update_books: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
borrow_books: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
add_users: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
delete_users: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
delete_books: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
update_users: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
},
|
||||
change_permissions: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
}
|
||||
};
|
||||
|
||||
const UserSchema = new Schema({
|
||||
username: {
|
||||
type: String,
|
||||
required: 'Username missing'
|
||||
},
|
||||
password: {
|
||||
type: String,
|
||||
required: 'Password missing'
|
||||
},
|
||||
email: String,
|
||||
student_card: String,
|
||||
borrowing: [{
|
||||
bookId: Schema.Types.ObjectId,
|
||||
date: Date
|
||||
}],
|
||||
permissions: permission_set
|
||||
});
|
||||
|
||||
UserSchema.set('toJSON', {
|
||||
transform: function(doc, ret, options) {
|
||||
const json = {
|
||||
username: ret.username,
|
||||
borrowing: ret.borrowing,
|
||||
permissions: ret.permissions,
|
||||
_id: ret._id
|
||||
};
|
||||
return json;
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = mongoose.model('User', UserSchema);
|
||||
Reference in New Issue
Block a user