Skip to content

Instantly share code, notes, and snippets.

@ericrocha97
Created June 2, 2020 16:42
Show Gist options
  • Save ericrocha97/dd5481bd2895f4e8bb56030ab07948f1 to your computer and use it in GitHub Desktop.
Save ericrocha97/dd5481bd2895f4e8bb56030ab07948f1 to your computer and use it in GitHub Desktop.
NextLevelWeek
import {Request, Response} from 'express';
import knex from '../database/connection';
class PointsController {
async create (request: Request, response: Response) {
const {
name,
email,
whatsapp,
latitude,
longitude,
city,
uf,
items
} = request.body;
const trx = await knex.transaction();
const point = {
image: 'image-fake',
name,
email,
whatsapp,
latitude,
longitude,
city,
uf
}
const insertIds = await trx('points').insert(point);
const point_id = insertIds[0];
const pointItems = items.map((item_id: Number) => {
return {
item_id,
point_id,
}
})
await trx('point_items').insert(pointItems);
return response.json({
id:point_id,
...point, });
}
};
export default PointsController;
import express, { request, response } from 'express';
import knex from './database/connection';
import PointsController from './controllers/PointsController';
const routes = express.Router();
const pointsController = new PointsController();
routes.get('/items', async (request, response) => {
const items = await knex('items').select('*');
const serializedItems = items.map(item => {
return {
id : item.id,
title: item.title,
image_url: `http://localhost:3333/uploads/${item.image}`,
};
})
return response.json(serializedItems);
});
routes.post('/points', pointsController.create);
export default routes;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment