Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (() => {
- 'use strict';
- // Módulos'
- let md5 = require('md5');
- let Promise = require('bluebird');
- // Model
- let Student = require('../models/student').Student;
- let User = require('../models/user').User;
- exports.create = function (req, res) {
- var student = new Student();
- var user = new User();
- user.username = req.body.document;
- user.password = md5(req.body.password + global.SALT_KEY);
- user.role = 'free';
- user.active = false;
- saveUser(user)
- .then((user) => {
- // Se salvou, persiste o aluno
- student.firstName = req.body.firstName;
- student.lastName = req.body.lastName;
- student.document = req.body.document;
- student.email = req.body.email;
- student.user = user;
- student.createDate = Date.now();
- return saveStudent(student);
- })
- .done((result) => {
- res.status(201).json({
- success: true,
- message: 'Bem vindo!',
- data: {
- firstName: result.firstName,
- lastName: result.lastName,
- document: result.document,
- email: result.email,
- }
- });
- });
- };
- exports.activate = function (req, res) {
- var id = req.body.id;
- getUserById(id)
- .then((user) => {
- user.active = true;
- return updateUser(user);
- })
- .done((result) => {
- res.status(201).json(result);
- });
- }
- function saveUser(user) {
- return new Promise((resolve, reject) => {
- user.save(function (error) {
- if (error) {
- reject({
- success: false,
- message: 'Não foi possível concluir seu cadastro, verifique os campos informados e tente novamente.',
- data: global.handleError(error)
- });
- }
- resolve(user);
- });
- });
- }
- function saveStudent(student) {
- return new Promise((resolve, reject) => {
- student.save(function (error) {
- if (error) {
- reject({
- success: false,
- message: 'Não foi possível concluir seu cadastro, verifique os campos informados e tente novamente.',
- data: global.handleError(error)
- });
- }
- resolve(student);
- });
- });
- }
- function getUserById(id) {
- return new Promise((resolve, reject) => {
- User
- .findById(id)
- .exec((error, user) => {
- if (error) {
- reject({
- success: false,
- message: 'Ocorreu uma falha ao consultar o registro'
- });
- }
- if (!user) {
- reject({
- success: false,
- message: 'Usuário não encontrado'
- });
- }
- resolve(user);
- });
- });
- }
- function updateUser(user) {
- return new Promise((resolve, reject) => {
- user.save((error) => {
- if (error) {
- reject({
- success: false,
- message: 'Não foi possível ativar seu cadastro tente novamente.',
- data: global.handleError(error)
- });
- }
- resolve({
- success: true,
- message: 'Cadastro ativado com sucesso.',
- data: null
- });
- });
- });
- }
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement