GithubHelp home page GithubHelp logo

atomicmodule-orders's Introduction

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;

atomicmodule-orders's People

Contributors

hc3 avatar suissa avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.