Skip to content

Commit

Permalink
arreglados bugs y actualizado a la ultima version
Browse files Browse the repository at this point in the history
  • Loading branch information
ViktorJJF committed Jan 2, 2021
1 parent 123f3e8 commit 2a3a8c2
Show file tree
Hide file tree
Showing 10 changed files with 745 additions and 697 deletions.
47 changes: 24 additions & 23 deletions controllers/brandsController.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,31 +8,32 @@ const db = require('../helpers/db');

const UNIQUEFIELDS = ['name'];

const itemExistsExcludingItself = async (id, body) => new Promise((resolve, reject) => {
const query = UNIQUEFIELDS.length > 0 ? {} : { noFields: true };
for (const uniquefield of UNIQUEFIELDS) {
query[uniquefield] = body[uniquefield];
}
query._id = {
$ne: id,
};
model.findOne(query, (err, item) => {
utils.itemAlreadyExists(err, item, reject, 'Este registro ya existe');
resolve(false);
const itemExistsExcludingItself = async (id, body) =>
new Promise((resolve, reject) => {
const query = UNIQUEFIELDS.length > 0 ? {} : { noFields: true };
for (const uniquefield of UNIQUEFIELDS) {
query[uniquefield] = body[uniquefield];
}
query._id = {
$ne: id,
};
model.findOne(query, (err, item) => {
utils.itemAlreadyExists(err, item, reject, 'Este registro ya existe');
resolve(false);
});
});
});

const itemExists = async (body) => new Promise((resolve, reject) => {
const query = UNIQUEFIELDS.length > 0 ? {} : { noFields: true };
for (const uniquefield of UNIQUEFIELDS) {
query[uniquefield] = body[uniquefield];
}
model.findOne(query, (err, item) => {
console.log('el item es: ', item);
utils.itemAlreadyExists(err, item, reject, 'Este registro ya existe');
resolve(false);
const itemExists = async (body) =>
new Promise((resolve, reject) => {
const query = UNIQUEFIELDS.length > 0 ? {} : { noFields: true };
for (const uniquefield of UNIQUEFIELDS) {
query[uniquefield] = body[uniquefield];
}
model.findOne(query, (err, item) => {
utils.itemAlreadyExists(err, item, reject, 'Este registro ya existe');
resolve(false);
});
});
});

/**
* Gets all items from database
Expand All @@ -49,7 +50,7 @@ const listAll = async (req, res) => {
const list = async (req, res) => {
try {
const { query } = req;
// const query = await db.checkQueryString(req.query);
const query = await db.checkQueryString(req.query);
res.status(200).json(await db.getItems(req, model, query));
} catch (error) {
utils.handleError(res, error);
Expand Down
3 changes: 2 additions & 1 deletion helpers/auth.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
const crypto = require('crypto');
const { buildErrObject } = require('../helpers/utils');

const secret = process.env.JWT_SECRET;
const algorithm = 'aes-192-cbc';
Expand All @@ -18,7 +19,7 @@ module.exports = {
return new Promise((resolve, reject) => {
user.comparePassword(password, (err, isMatch) => {
if (err) {
reject(this.buildErrObject(422, err.message));
reject(buildErrObject(422, err.message));
}
if (!isMatch) {
resolve(false);
Expand Down
22 changes: 18 additions & 4 deletions helpers/db.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,21 @@ module.exports = {
renameKey,
async checkQueryString(query) {
return new Promise((resolve, reject) => {
//se obtiene campos fuera del filtro y campos
let queries = {};
for (const key in query) {
if (query.hasOwnProperty.call(query, key)) {
const element = query[key];
if (
key !== 'filter' &&
key !== 'fields' &&
key !== 'page' &&
key !== 'filter'
) {
queries[key] = element;
}
}
}
try {
if (
typeof query.filter !== 'undefined' &&
Expand All @@ -83,9 +98,9 @@ module.exports = {
});
// Puts array result in data
data.$or = array;
resolve(data);
resolve({ ...data, ...queries });
} else {
resolve({});
resolve(queries);
}
} catch (err) {
console.log(err.message);
Expand Down Expand Up @@ -131,7 +146,6 @@ module.exports = {
if (query.hasOwnProperty(key)) delete query[key];
}
}
// console.log("se paginara con esto: ", query, options);
return new Promise((resolve, reject) => {
model.paginate(query, options, (err, items) => {
if (err) {
Expand Down Expand Up @@ -195,7 +209,7 @@ module.exports = {
const item = new model(body);
item.save((err, payload) => {
if (err) {
console.log('salio este error prro:', err);
console.log('salio este error:', err);
reject(buildErrObject(422, err.message));
}
resolve({ ok: true, payload });
Expand Down
6 changes: 3 additions & 3 deletions models/Users.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ const bcrypt = require('bcrypt');
const { Schema } = mongoose;

const validRoles = {
values: ['ADMIN', 'USER'],
values: ['SUPERADMIN', 'ADMIN', 'USER'],
message: '{VALUE} no es un rol válido',
};

Expand Down Expand Up @@ -86,7 +86,7 @@ const genSalt = (user, SALT_FACTOR, next) => {
});
};

usersSchema.pre('save', (next) => {
usersSchema.pre('save', function (next) {
const that = this;
const SALT_FACTOR = 5;
if (!that.isModified('password')) {
Expand All @@ -95,7 +95,7 @@ usersSchema.pre('save', (next) => {
return genSalt(that, SALT_FACTOR, next);
});

usersSchema.methods.comparePassword = (passwordAttempt, cb) => {
usersSchema.methods.comparePassword = function (passwordAttempt, cb) {
bcrypt.compare(passwordAttempt, this.password, (err, isMatch) => {
if (err) {
return cb(err);
Expand Down
Loading

0 comments on commit 2a3a8c2

Please sign in to comment.