From 9f54c925f7de224d1b354bd6bc6650772d8ba247 Mon Sep 17 00:00:00 2001 From: Richard Fernando Heise Ferreira <rfhf19@inf.ufpr.br> Date: Tue, 17 Mar 2020 12:18:04 -0300 Subject: [PATCH] Issue #68: Add CORS to back-end Signed-off-by: RichardHeise <rfhf19@inf.ufpr.br> --- CHANGELOG.md | 8 ++++++++ README.md | 2 ++ config/config.env.example | 2 +- package.json | 4 +++- src/main.ts | 6 ++++-- yarn.lock | 28 ++++++++++++++++++++++++++-- 6 files changed, 44 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 177d6dc..0449a75 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,14 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## 1.2.1 - 05-03-2020 +## Added +- Cors to integrate front-end with back-end #68 (Richard Heise) +### Changed +- Minor route order changes on main.ts to make it more intuitive +- Port on config.env from 3000 to 3333 for integration purpose + ## 1.2.0 - 19-02-2020 ### Changed - Created a stable version with user diff --git a/README.md b/README.md index 2e313de..6283621 100644 --- a/README.md +++ b/README.md @@ -28,6 +28,8 @@ Backend installation instructions: The main objective of this project is create a *Web Service* which allows users to create and update its own forms offering the following features. +If you want to update a VM follow the steps described on issue #67 (in portuguese): https://gitlab.c3sl.ufpr.br/simmctic/form-creator/form-creator-api/issues/67 + * Versionable * The form can be updated, and answers of several versions are stored. * Validable diff --git a/config/config.env.example b/config/config.env.example index 421aa7e..2f47c1a 100644 --- a/config/config.env.example +++ b/config/config.env.example @@ -6,7 +6,7 @@ # to undesired eyes. # You should not modify this file. You should copy it and edit and use the copy. -PORT=3000 +PORT=3333 # This should be a secret key to encode the informations on the token JWT_KEY="secret_very_long_string_key" diff --git a/package.json b/package.json index eb9fa23..a8160ee 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "form-creator-api", - "version": "1.2.0", + "version": "1.2.1", "description": "RESTful API used to manage and answer forms.", "main": "index.js", "scripts": { @@ -19,9 +19,11 @@ "dependencies": { "@types/async": "^2.0.50", "@types/bcrypt": "^3.0.0", + "@types/cors": "^2.8.6", "@types/express": "^4.16.0", "@types/pg": "^7.4.13", "async": "^2.6.1", + "cors": "^2.8.5", "express": "^4.16.4", "pg": "^7.8.1", "ts-node": "^7.0.1", diff --git a/src/main.ts b/src/main.ts index 70d6a76..fa47c11 100755 --- a/src/main.ts +++ b/src/main.ts @@ -25,6 +25,7 @@ import * as bodyParser from "body-parser"; import * as express from "express"; +const cors = require("cors"); // Create a new express app /** @hidden */ @@ -47,6 +48,7 @@ import { tokenValidation } from "./api/middlewares/userAuth"; // Setup middlewares app.use("/", bodyParser.json()); app.use("/", DbHandlerMw()); +app.use(cors()); // Setup routes @@ -54,13 +56,13 @@ app.get("/form/:id", FormCtrl.read); app.put("/form/:id", tokenValidation(), FormCtrl.update); app.post("/form", tokenValidation(), FormCtrl.write); app.post("/answer/:id", AnswerCtrl.write); +app.get("/answer/:id", tokenValidation(), AnswerCtrl.read); app.post("/user/signUp", UserCtrl.signUp); app.post("/user/signIn", UserCtrl.signIn); -app.delete("/user/deleteData/:id", tokenValidation(), UserCtrl.deleteData); app.put("/user/changePassword", tokenValidation(), UserCtrl.changePassword); app.get("/user/list/:id", UserCtrl.listForms); app.put("/user/update", tokenValidation(), UserCtrl.update); -app.get("/answer/:id", tokenValidation(), AnswerCtrl.read); +app.delete("/user/deleteData/:id", tokenValidation(), UserCtrl.deleteData); // Listening diff --git a/yarn.lock b/yarn.lock index d00b98c..bb48f14 100644 --- a/yarn.lock +++ b/yarn.lock @@ -37,6 +37,13 @@ resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.1.tgz#90b68446364baf9efd8e8349bb36bd3852b75b80" integrity sha512-aRnpPa7ysx3aNW60hTiCtLHlQaIFsXFCgQlpakNgDNVFzbtusSY8PwjAQgRWfSk0ekNoBjO51eQRB6upA9uuyw== +"@types/cors@^2.8.6": + version "2.8.6" + resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.6.tgz#cfaab33c49c15b1ded32f235111ce9123009bd02" + integrity sha512-invOmosX0DqbpA+cE2yoHGUlF/blyf7nB0OGYBBiH27crcVm5NmFaZkLP4Ta1hGaesckCi5lVLlydNJCxkTOSg== + dependencies: + "@types/express" "*" + "@types/events@*": version "3.0.0" resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" @@ -50,6 +57,15 @@ "@types/node" "*" "@types/range-parser" "*" +"@types/express@*": + version "4.17.3" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.3.tgz#38e4458ce2067873b09a73908df488870c303bd9" + integrity sha512-I8cGRJj3pyOLs/HndoP+25vOqhqWkAZsWMEmq1qXy/b/M3ppufecUwaK2/TVDVxcV61/iSdhykUjQQ2DLSrTdg== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "*" + "@types/serve-static" "*" + "@types/express@^4.16.0": version "4.16.1" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.16.1.tgz#d756bd1a85c34d87eaf44c888bad27ba8a4b7cf0" @@ -551,6 +567,14 @@ core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +cors@^2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + debug@2.6.9, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -1380,7 +1404,7 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -object-assign@^4.1.0: +object-assign@^4, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= @@ -2002,7 +2026,7 @@ utils-merge@1.0.1: resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= -vary@~1.1.2: +vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= -- GitLab