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
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
1 change: 1 addition & 0 deletions Semana13/Projeto/Labefood
Submodule Labefood added at b8b2f6
1 change: 1 addition & 0 deletions Semana16/Projeto/epps-labenu-system13
Submodule epps-labenu-system13 added at 150f9c
8 changes: 8 additions & 0 deletions Semana17/Projeto/Cookenu/.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
DB_HOST = 35.226.146.116
DB_USER = douglas-florido
DB_SCHEMA = epps-douglas-florido
DB_PASSWORD = @YPzf2eidAljnf7ykH$b

BCRYPT_COST = 12

JWT_KEY = 123321123321123
14 changes: 14 additions & 0 deletions Semana17/Projeto/Cookenu/build/app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const express_1 = __importDefault(require("express"));
const cors_1 = __importDefault(require("cors"));
const app = express_1.default();
app.use(express_1.default.json());
app.use(cors_1.default());
app.listen(3003, () => {
console.log('Servidor rodando na porta 3003');
});
exports.default = app;
20 changes: 20 additions & 0 deletions Semana17/Projeto/Cookenu/build/connection.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const knex_1 = __importDefault(require("knex"));
const dotenv_1 = __importDefault(require("dotenv"));
dotenv_1.default.config();
const connection = knex_1.default({
client: 'mysql',
connection: {
host: process.env.DB_HOST,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_SCHEMA,
port: 3306,
multipleStatements: true
}
});
exports.default = connection;
41 changes: 41 additions & 0 deletions Semana17/Projeto/Cookenu/build/endpoints/createUser.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const connection_1 = __importDefault(require("../connection"));
const authenticator_1 = require("../services/authenticator");
const encrypter_1 = require("../services/encrypter");
function createUser(req, res) {
return __awaiter(this, void 0, void 0, function* () {
try {
const { id, name, email, password } = req.body;
if (!id || !name || !email || !password) {
res.statusCode = 422;
throw new Error("Preencha os campos 'id', 'name', 'email' e 'password'");
}
let encriptedPassword = yield encrypter_1.encrypter(password);
const result = yield connection_1.default.raw(`
INSERT INTO User (id, name, email, password)
VALUES (${id}, "${name}", "${email}", "${encriptedPassword}");
`);
console.log(`${id}`, typeof (`${id}`));
let token = authenticator_1.generateToken({ id });
console.log("token: ", token);
res.status(201).send(token);
}
catch (error) {
res.send(error);
}
});
}
exports.default = createUser;
50 changes: 50 additions & 0 deletions Semana17/Projeto/Cookenu/build/endpoints/editUser.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const connection_1 = __importDefault(require("../connection"));
const authenticator_1 = require("../services/authenticator");
const types_1 = require("../types");
function createUser(req, res) {
return __awaiter(this, void 0, void 0, function* () {
try {
const { name, nickname } = req.body;
const token = req.headers.authorization;
const tokenData = authenticator_1.getTokenData(token);
if (!tokenData) {
res.statusCode = 401;
throw new Error("Unatuthorized");
}
if (tokenData.role !== types_1.userRole.ADMIN) {
res.statusCode = 401;
throw new Error("Apenas usuários administradores podem acessar.");
}
if (!name && !nickname) {
res.statusCode = 422;
res.statusMessage = "Informe o(s) novo(s) 'name' ou 'nickname'";
throw new Error("caí aqui");
}
yield connection_1.default('to_do_list_users')
.update({ name, nickname })
.where({ id: tokenData.id });
res.send({ message: "Atualizado!" });
}
catch (error) {
if (res.statusCode === 200) {
res.status(500).send({ message: error.message });
}
res.send({ message: error.message });
}
});
}
exports.default = createUser;
39 changes: 39 additions & 0 deletions Semana17/Projeto/Cookenu/build/endpoints/getAnotherUser.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const connection_1 = __importDefault(require("../connection"));
const getAnotherUser = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
try {
const searchID = req.params.id;
const token = req.headers.authorization;
if (!searchID) {
throw new Error("Invalid Params");
}
if (!token) {
throw new Error("Token expired");
}
const user = yield connection_1.default.raw(`
SELECT id, name, email FROM User
WHERE (id = "${searchID}");
`);
if (!user) {
throw new Error("No user found");
}
res.status(200).send(user[0]);
}
catch (error) {
res.status(400).send(error);
}
});
exports.default = getAnotherUser;
42 changes: 42 additions & 0 deletions Semana17/Projeto/Cookenu/build/endpoints/getProfile.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const connection_1 = __importDefault(require("../connection"));
const authenticator_1 = require("../services/authenticator");
function getProfile(req, res) {
return __awaiter(this, void 0, void 0, function* () {
try {
const token = req.headers.authorization;
console.log("token: ", token);
if (!token) {
throw new Error("Token expired");
}
let result = authenticator_1.getTokenData(token);
if (!result) {
throw new Error("Invalid Token");
}
let email = result.result.email;
const information = yield connection_1.default.raw(`
SELECT id, name, email FROM User
WHERE (email = "${email}");
`);
console.log("info: ", information[0]);
res.status(200).send(information[0]);
}
catch (error) {
res.status(400).send(error);
}
});
}
exports.default = getProfile;
38 changes: 38 additions & 0 deletions Semana17/Projeto/Cookenu/build/endpoints/getRecipe.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const connection_1 = __importDefault(require("../connection"));
const getRecipe = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
try {
const id = req.params.id;
const token = req.headers.authorization;
if (!token) {
throw new Error("Token Expired");
}
if (!id) {
throw new Error("Invalid Id");
}
const find = yield connection_1.default.raw(`
SELECT * FROM Recipe WHERE (id = ${id});
`);
if (!find) {
throw new Error("No Recipe Found");
}
res.status(200).send(find);
}
catch (error) {
res.status(400).send(error);
}
});
exports.default = getRecipe;
40 changes: 40 additions & 0 deletions Semana17/Projeto/Cookenu/build/endpoints/login.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const connection_1 = __importDefault(require("../connection"));
const authenticator_1 = require("../services/authenticator");
const encrypter_1 = require("../services/encrypter");
function login(req, res) {
return __awaiter(this, void 0, void 0, function* () {
try {
const { email, password } = req.body;
if (!email || !password) {
throw new Error("E-mail or password void");
}
let realPassword = yield connection_1.default.raw(`
SELECT password FROM User WHERE (email = "${email}");
`);
let enterOrNot = encrypter_1.verifier(password, realPassword);
if (!enterOrNot) {
throw new Error("E-mail or Password incorrect");
}
let token = authenticator_1.generateToken({ email });
res.status(200).send(token);
}
catch (error) {
res.send(error);
}
});
}
exports.default = login;
51 changes: 51 additions & 0 deletions Semana17/Projeto/Cookenu/build/endpoints/newRecipe.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const connection_1 = __importDefault(require("../connection"));
const authenticator_1 = require("../services/authenticator");
const newRecipe = (req, res) => __awaiter(void 0, void 0, void 0, function* () {
try {
const { title, description } = req.body;
const token = req.headers.authorization;
if (!token) {
throw new Error("Token expired");
}
if (!title || !description) {
throw new Error("Check your fields");
}
let date = new Date().toISOString().slice(0, 10);
let email = authenticator_1.getTokenData(token);
if (!email) {
throw new Error("Token expired");
}
email = email.result.email;
let idUser = yield connection_1.default.raw(`
SELECT id FROM User WHERE (email = "${email}");
`);
idUser = idUser[0][0].id;
let newId = yield connection_1.default.raw(`
SELECT id FROM Recipe;
`);
newId = newId[0].length + 1;
yield connection_1.default.raw(`
INSERT INTO Recipe (id, name, description, creation_date, fk_user)
VALUES(${newId}, "${title}", "${description}", "${date}",${idUser} )
`);
res.status(201).send("Recipe Successfully Created");
}
catch (error) {
res.status(400).send(error);
}
});
exports.default = newRecipe;
18 changes: 18 additions & 0 deletions Semana17/Projeto/Cookenu/build/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const app_1 = __importDefault(require("./app"));
const createUser_1 = __importDefault(require("./endpoints/createUser"));
const login_1 = __importDefault(require("./endpoints/login"));
const getProfile_1 = __importDefault(require("./endpoints/getProfile"));
const getAnotherUser_1 = __importDefault(require("./endpoints/getAnotherUser"));
const newRecipe_1 = __importDefault(require("./endpoints/newRecipe"));
const getRecipe_1 = __importDefault(require("./endpoints/getRecipe"));
app_1.default.post('/signup', createUser_1.default);
app_1.default.post('/login', login_1.default);
app_1.default.get('/user/profile', getProfile_1.default);
app_1.default.get('/user/:id', getAnotherUser_1.default);
app_1.default.get('/recipe/:id', getRecipe_1.default);
app_1.default.post('/recipe', newRecipe_1.default);
Loading