'use strict' // Bookshelf const bookshelf = require('../database/bookshelf').bookshelf const model = require('../models/user-model') // Hashing and passwords const bcrypt = require('bcrypt') // Model validation const Validator = require('jsonschema').Validator const v = new Validator() const UserValidation = require("../validations/UserValidation") v.addSchema(UserValidation, "/UserValidation") // Validations const isXSSAttempt = require('../functions').isXSSAttempt const isEmptyObject = require('../functions').isEmptyObject // Error handling const { HttpError } = require('../validations/Errors') class UserRepository { constructor() { } getAll() { return new Promise((resolve, reject) => { this._model.forge() .fetchAll() .then(v => { resolve(v.toJSON({ omitPivot: true })) }) .catch(err => { console.log(err) reject(new HttpError(500, "Couldn't get users")) }) }) } getOne(id) { return new Promise((resolve, reject) => { this._model.forge() .where({ 'id' : id }) .fetch() .then(v => { resolve(v.toJSON({ omitPivot: true })) }) .catch(err => { console.log(err) reject(new HttpError(500, "Couldn't get user")) }) }) } } module.exports = UserRepository