AtomicModule-Orders

AtomicModule-Orders

  • Conceitos

Um pedido é onde inicia-se um processo em diversas empresas de vários ramos, um pedido tem sua data de criação se pegarmos todos os pedidos de um determinado dia temos a movimentação do dia.

JSON { produtos:[ { id:Integer, qnt:Integer, desconto:Double } ], cond_pag: [‘A-VISTA’, ‘BOLETO’, ‘CHEQUE’], status:[‘PAGO’, ‘AGUARDANDO’, ‘CANCELADO’], created_at:DATE, updated_at:DATE, end_entrega: { rua:String, bairro:String, cidade:String, cep:String, numero:Integer }, end_cobranca: { rua:String, bairro:String, cidade:String, cep:String, numero:Integer }, tipo_envio:[], valor_envio:Double, voucher: ?, desconto:Double, client:Schema.Types.ObjectId observacao:String, sub_total:Double, total:Double }

vou implementar algo básico mais que funcione segue:

model.js

'use strict';

var mongoose = require('mongoose');
const Schema = mongoose.Schema;

var pedido = {

    produtos: [{
        id:Number,
        qnt:Number,
        desconto:Number
    }],
    cond_pag:[],
    status:[],
    end_entrega: {
        rua:String,
        bairro:String,
        cidade:String,
        cep:String,
        numero:Number
    },
    end_cobranca: {
        rua:String,
        bairro:String,
        cidade:String,
        cep:String,
        numero:Number
    },
    tipo_envio:[],
    valor_envio:Number,
    voucher:Number,
    desconto:Number,
    client:String,
    observacao:String,
    sub_total:Number,
    total:Number
}

const pedidoSchema = new Schema(pedido);
console.log('o Schema é :', pedidoSchema);
module.exports = mongoose.model('Pedido',pedidoSchema);

route.js

'use strict';

var Pedidos = require('./model.js');
var callback = require('./callback-express.js');

module.exports = function(app) {

    var buscaPedidos = function(req, res) {
        console.log("buscaPedidos");

        return Pedidos.find(function(err, element) {
            callback.callbackFind(err,element,res);
        })
    };

    var buscaPedidoPorId = function(req, res) {
        console.log("buscaPedidoPorId");
        var id = req.params.id;
        return Pedidos.findById({_id:id},function (err, element){
            callback.callbackFindById(err,element,res);
        })
    };

    var removePedido = function(req, res) {
        console.log("removePedido");
        var id = req.params.id;
        return Pedidos.findById({id:id}, function(err, element) {
            if(!element) {
                res.statusCode = 404;
                return res.send({error:'Elemento não foi localizado'});
            }
            return Pedidos.removePedido(function(err) {
                callback.callbackRemove(err,res);
            });
        });
    };

    var addPedido = function(req, res) {
        console.log('addPedido');
        var element = new Pedido(req.body);
        element.save(function(err,produto) {
            return callback.callbackSave(err,res);
        });
    };

    app.post('/api/addPedido',addPedido);
    app.delete('/api/removePedido',removePedido);
    app.get('/api/pedidos',buscaPedidos);
    app.get('/api/pedido/:id',buscaPedidoPorId);
}

server.js

// set up ===================================================================================================
var express        = require('express');
var morgan         = require('morgan');                         // log requests to the console (express4)
var bodyParser     = require('body-parser');                    // pull information from HTML POST (express4)
var methodOverride = require('method-override');                // simulate DELETE and PUT (express4)
var mongoose       = require('mongoose');                       // mongoose for mongodb
var app            = express();                                 // create our app w/ express
var port  	       = process.env.PORT || 3412; 				    // set the port


// configuration ============================================================================================
app.use(express.static(__dirname + '/public'));                 // set the static files location
app.use(morgan('dev'));                                         // log every request to the console
app.use(bodyParser.urlencoded({'extended':'true'})); 			// parse application/x-www-form-urlencoded
app.use(bodyParser.json()); 									// parse application/json
app.use(bodyParser.json({ type: 'application/vnd.api+json' })); // parse application/vnd.api+json as json
app.use(methodOverride());                                      // simulate DELETE and PUT


// routes ===================================================================================================
var pedidosRoute = require('./route.js')(app);



// MongoDB configuration ====================================================================================

mongoose.connect('mongodb://localhost/dbOrders', function(err, res) {
	if (err) {
		console.log('error connecting to MongoDB Database. ' + err);
	} else {
		console.log('Connected to Database');
	}
});



// listen (start app with node server.js) ===================================================================
app.listen(port);
console.log('Listenning on port ' + port);

um helper p o callback do express callback-express “”

”“var obj = {

callbackFind: (err,element,res) => { if(!err) { return res.send(element); }else { res.statusCode = 500; console.log(“Erro interno!”,res.statusCode,err.message); return res.send({error:“erro ao tentar buscar Elemento!”}); } },

callbackFindById: (err,element,res) => { if(!element) { res.statusCode = 404; return res.send({error:“Elemento não foi localizado”}); } if(!err) { return res.send({status:“OK”}); } else { res.statusCode = 500; console.log(“Erro interno!”,res.statusCode,err.message); return res.send({error:“erro ao tentar buscar”}); } },

callbackRemove: (err,res) => { if(!err) { console.log(“Elemento removido com sucesso!”); return res.send({status:“OK”}); } else { res.statusCode = 500; console.log(“Erro ao tentar remover”,res.statusCode,err.message); return res.send({error:“erro no servidor”}); } },

callbackSave: (err,res) => { if(err) { console.log(“Erro ao tentar salvar “+err); res.send({error:err}); } else { console.log(“Elemento cadastrado com sucesso!”); res.send({status:“OK”}); } }

};

module.exports = obj;

Related Repositories