Skip to content

Commit

Permalink
developmet purpose only
Browse files Browse the repository at this point in the history
  • Loading branch information
Ridwan Zalbina committed Nov 24, 2021
1 parent cfe801f commit 89991ef
Show file tree
Hide file tree
Showing 5 changed files with 216 additions and 34 deletions.
5 changes: 5 additions & 0 deletions .env
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
DB_HOST = 'localhost'
DB_USER = 'root'
DB_PASSWORD = ''
DB_NAME = 'm2_expo'
DB_PORT = 3307
11 changes: 6 additions & 5 deletions api/config/database.js
Original file line number Diff line number Diff line change
@@ -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){
Expand Down
213 changes: 192 additions & 21 deletions api/paths/api/account/index.js
Original file line number Diff line number Diff line change
@@ -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,
};

Expand All @@ -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);
Expand All @@ -35,28 +38,106 @@ 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);
}
});
}

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 = {
Expand All @@ -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",
Expand All @@ -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: {
Expand Down
17 changes: 9 additions & 8 deletions app.js
Original file line number Diff line number Diff line change
@@ -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());
Expand Down
4 changes: 4 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down

0 comments on commit 89991ef

Please sign in to comment.