From 89991ef92bfe368b12db007b5c193d38798e5e60 Mon Sep 17 00:00:00 2001 From: Ridwan Zalbina Date: Wed, 24 Nov 2021 15:18:32 +0700 Subject: [PATCH] developmet purpose only --- .env | 5 + api/config/database.js | 11 +- api/paths/api/account/index.js | 213 +++++++++++++++++++++++++++++---- app.js | 17 +-- package.json | 4 + 5 files changed, 216 insertions(+), 34 deletions(-) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 0000000..8482a5b --- /dev/null +++ b/.env @@ -0,0 +1,5 @@ +DB_HOST = 'localhost' +DB_USER = 'root' +DB_PASSWORD = '' +DB_NAME = 'm2_expo' +DB_PORT = 3307 \ No newline at end of file diff --git a/api/config/database.js b/api/config/database.js index 16a553a..a76bf81 100644 --- a/api/config/database.js +++ b/api/config/database.js @@ -1,10 +1,11 @@ +const env = process.env; const mysql = require('mysql'); const connection = mysql.createConnection({ - host : "localhost", - user : "root", - password : "", - database : "m2_expo", - port: 3307 + host : env.HOST || 'localhost', + user : env.DB_USER || 'root', + password : env.DB_PASSWORD || "", + database : env.DB_NAME, + port: env.DB_PORT || 3306 }); connection.connect(function(err){ diff --git a/api/paths/api/account/index.js b/api/paths/api/account/index.js index 22e92cf..7a616d6 100644 --- a/api/paths/api/account/index.js +++ b/api/paths/api/account/index.js @@ -1,10 +1,13 @@ const db = require('../../../config/database'); +const dayjs = require('dayjs'); +const md5 = require('md5'); const table = 'rexpo_account' module.exports = function () { let operations = { GET, POST, PUT, + PATCH, DELETE, }; @@ -20,7 +23,7 @@ module.exports = function () { tempat_lahir, account_type, namafile, - pendidikan FROM `+table+``; + pendidikan FROM `+table+` ORDER BY ID DESC`; db.query(query, function(error, rows, fields){ if(error){ console.log(error); @@ -35,14 +38,18 @@ module.exports = function () { let email = req.body.email; let nama = req.body.nama; let password = req.body.password; + let phone = req.body.phone; let account_type = req.body.account_type; - let date_created = - let query = `INSERT INTO rexpo_account (email, nama, password, phone, account_type, date_created, date_updated, time_created,time_updated) - VALUES('zbinaridwan@gmail.com','M. Ridwan Zalbina', '25d55ad283aa400af464c76d713c07ad', '081919992000', 'peserta', '2021-06-18','2021-06-18','14:09:08','14:09:08')`; + let date_created = dayjs().format('YYYY-MM-DD'); + let date_updated = dayjs().format('YYYY-MM-DD'); + let time_created = dayjs().format('HH:mm:ss'); + let time_updated = dayjs().format('HH:mm:ss'); + console.log(time_created) + let query = `INSERT INTO `+table+` (email, nama, password, phone, account_type, date_created, date_updated, time_created,time_updated) + VALUES('`+email+`','`+nama+`', 'md5(`+password+`)', '`+phone+`', '`+account_type+`', '`+date_created+`','`+date_updated+`','`+time_created+`','`+time_updated+`')`; db.query(query, function(error, rows, field){ if(error){ - console.log(error); - res.status(400).json({error: 'Request failed'}) + res.status(400).json(date_created) }else{ res.status(200).json(rows); } @@ -50,13 +57,87 @@ module.exports = function () { } function PUT(req, res, next) { - console.log(`About to update todo id: ${req.query.id}`); - res.status(200).send(); + let id = req.body.id; + let email = req.body.email; + let nama = req.body.nama; + let password = req.body.password; + let phone = req.body.phone; + let account_type = req.body.account_type; + let date_created = dayjs().format('YYYY-MM-DD'); + let date_updated = dayjs().format('YYYY-MM-DD'); + let time_created = dayjs().format('HH:mm:ss'); + let time_updated = dayjs().format('HH:mm:ss'); + let query = `UPDATE `+table+` + SET + email='`+email+`', + nama='`+nama+`', + password='`+password+`', + phone='`+phone+`', + account_type='`+account_type+`', + date_created='`+date_created+`', + date_updated='`+date_updated+`', + time_created='`+time_created+`', + time_updated='`+time_updated+`' + WHERE + id = '`+id+`' `; + console.log(query); + db.query(query, function(error, rows, field){ + if(error){ + console.log(error); + res.status(400).json(error) + }else{ + res.status(200).json(rows); + } + }); + } + + + function PATCH(req, res, next) { + let id = req.body.id; + let email = req.body.email; + let nama = req.body.nama; + let password = req.body.password; + let phone = req.body.phone; + let account_type = req.body.account_type; + let date_created = dayjs().format('YYYY-MM-DD'); + let date_updated = dayjs().format('YYYY-MM-DD'); + let time_created = dayjs().format('HH:mm:ss'); + let time_updated = dayjs().format('HH:mm:ss'); + let query = `UPDATE `+table+` + SET + email='`+email+`', + nama='`+nama+`', + password='`+password+`', + phone='`+phone+`', + account_type='`+account_type+`', + date_created='`+date_created+`', + date_updated='`+date_updated+`', + time_created='`+time_created+`', + time_updated='`+time_updated+`' + WHERE + id = '`+id+`' `; + console.log(query); + db.query(query, function(error, rows, field){ + if(error){ + console.log(error); + res.status(400).json(error) + }else{ + res.status(200).json(rows); + } + }); } function DELETE(req, res, next) { - console.log(`About to delete todo id: ${req.query.id}`); - res.status(200).send(); + let id = req.query.id; + let query = `DELETE FROM `+table+` WHERE id = '`+id+`'`; + db.query(query, function(error, rows, field){ + if(error){ + console.log(error); + res.status(400).json(error) + }else{ + res.status(200).json(rows); + } + }); } GET.apiDoc = { @@ -78,7 +159,36 @@ module.exports = function () { POST.apiDoc = { summary: "Create account.", operationId: "createAccount", - consumes: ["application/json"], + consumes: ["application/x-www-form-urlencoded"], + parameters : [ + { + in: "body", + name : "body", + description : "Resource payload", + required : true, + schema : { + type : "object", + properties: { + email: { + type: "string" + }, + nama: { + type: "string" + }, + password: { + type: "string" + }, + phone: { + type: "number" + }, + account_type: { + type: "string" + } + }, + required : ["email", "nama", "password", "phone","account_type"] + } + } + ], responses: { 201: { description: "Created", @@ -89,20 +199,81 @@ module.exports = function () { PUT.apiDoc = { summary: "Update account.", operationId: "updateAccount", - parameters: [ + consumes: ["application/x-www-form-urlencoded"], + parameters : [ { - in: "query", - name: "id", - required: true, - type: "string", + in: "body", + name : "body", + description : "Resource payload", + required : true, + schema : { + type : "object", + properties: { + id: { + type: "number" + }, + email: { + type: "string" + }, + nama: { + type: "string" + }, + password: { + type: "string" + }, + phone: { + type: "number" + }, + account_type: { + type: "string" + } + }, + required : ["email", "nama", "password", "phone","account_type"] + } + } + ], + responses: { + 200: { + description: "Updated ok", }, + }, + }; + + PATCH.apiDoc = { + summary: "Update account.", + operationId: "updateAccount", + consumes: ["application/x-www-form-urlencoded"], + parameters : [ { in: "body", - name: "todo", - schema: { - $ref: "#/definitions/Account", - }, - }, + name : "body", + description : "Resource payload", + required : true, + schema : { + type : "object", + properties: { + id: { + type: "number" + }, + email: { + type: "string" + }, + nama: { + type: "string" + }, + password: { + type: "string" + }, + phone: { + type: "number" + }, + account_type: { + type: "string" + } + }, + required : ["email", "nama", "password", "phone","account_type"] + } + } ], responses: { 200: { diff --git a/app.js b/app.js index 2dec88e..a596539 100644 --- a/app.js +++ b/app.js @@ -1,11 +1,12 @@ -var express = require("express"); -var path = require("path"); -var cookieParser = require("cookie-parser"); -var logger = require("morgan"); -var { initialize } = require("express-openapi"); -var swaggerUi = require("swagger-ui-express"); -var app = express(); - +const express = require("express"); +const path = require("path"); +const cookieParser = require("cookie-parser"); +const logger = require("morgan"); +const { initialize } = require("express-openapi"); +const swaggerUi = require("swagger-ui-express"); +const app = express(); +const dotenv = require('dotenv'); +dotenv.config(); app.listen(3030); app.use(logger("dev")); app.use(express.json()); diff --git a/package.json b/package.json index 87eb657..51dad4c 100644 --- a/package.json +++ b/package.json @@ -11,9 +11,13 @@ }, "dependencies": { "cookie-parser": "~1.4.4", + "dayjs": "^1.10.7", "debug": "~2.6.9", + "dotenv": "^10.0.0", "express": "~4.16.1", "express-openapi": "^7.5.0", + "fs": "0.0.1-security", + "md5": "^2.3.0", "morgan": "~1.9.1", "mysql": "^2.18.1", "node-mysql": "^0.4.2",