Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 29 additions & 19 deletions api-gateway/index.js
Original file line number Diff line number Diff line change
@@ -1,28 +1,38 @@
const express = require('express')
const bodyParser = require('body-parser')
const cote = require('cote')
const axios = require('axios')
const express = require("express");
const bodyParser = require("body-parser");
const cote = require("cote");
const axios = require("axios");

const app = express()
const app = express();

app.use(bodyParser.json())
app.use(bodyParser.json());

const restaurantsRequester = new cote.Requester({ name: 'restaurants requester', key: 'restaurants' })
const restaurantsRequester = new cote.Requester({ name: "restaurants requester", key: "restaurants" });

const orderRequester = new cote.Requester({ name: 'order requester', key: 'orders' })
const orderRequester = new cote.Requester({ name: "order requester", key: "orders" });

const deliveryRequester = new cote.Requester({ name: 'delivery requester', key: 'deliveries' })
const deliveryRequester = new cote.Requester({ name: "delivery requester", key: "deliveries" });

app.get('/restaurants', async (req, res) => {
const restaurants = await restaurantsRequester.send({ type: 'list' })
res.send(restaurants);
})
app.get("/restaurants", async (req, res) => {
const restaurants = await restaurantsRequester.send({ type: "list" });
res.send(restaurants);
});

app.post('/order', async (req, res) => {
const order = await orderRequester.send({ type: 'create order', order: req.body })
const delivery = await deliveryRequester.send({ type: 'create delivery', order })
app.get("/restaurants/:id", async (req, res) => {
const restaurant = await restaurantsRequester.send({ type: "restourantById", id: req.params.id });
res.send(restaurant);
});

res.send({ order, delivery })
})
app.post("/order", async (req, res) => {
const order = await orderRequester.send({ type: "create order", order: req.body });
const delivery = await deliveryRequester.send({ type: "create delivery", order });

app.listen(3000, () => console.log('listening'))
res.send({ order, delivery });
});

app.get("/orders", async (req, res) => {
const orders = await orderRequester.send({ type: "list" });
res.send(orders);
});

app.listen(3000, () => console.log("listening"));
22 changes: 12 additions & 10 deletions order-service/index.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,16 @@
const cote = require('cote')
const cote = require("cote");

const orderResponder = new cote.Responder({ name: 'order responder', key: 'orders' })
orderResponder.on('*', req => req.type && console.log(req))
const orderResponder = new cote.Responder({ name: "order responder", key: "orders" });
orderResponder.on("*", (req) => req.type && console.log(req));

const orders = []
let idCounter = 0
const orders = [];
let idCounter = 0;

orderResponder.on('create order', req => {
const order = { id: idCounter++, ...req.order, status: 'preparing' }
orderResponder.on("create order", (req) => {
const order = { id: idCounter++, ...req.order, status: "preparing" };

orders.push(order)
return Promise.resolve(order)
})
orders.push(order);
return Promise.resolve(order);
});

orderResponder.on("list", (req) => Promise.resolve(orders));
Loading