1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145
| var http = require("http");
var express = require('express');
var app = express();
var mysql = require('mysql');
var bodyParser = require('body-parser');
var PHPUnserialize = require('php-unserialize');
const Serialize = require('php-serialize');
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : 'root',
database : 'restapi',
port : '8889'
});
connection.connect(function(error) {
if (error) throw error
console.log('\nCongrats MySQL Server success connect')
})
app.use(bodyParser.json()); // to support JSON-encoded bodies
app.use(bodyParser.urlencoded({ // to support URL-encoded bodies
extended: true
}));
var server = app.listen(4000, "127.0.0.1", function () {
var host = server.address().address
var port = server.address().port
console.log("Server listening at http://%s:%s", host, port)
});
//GET Domains
app.get('/api/domains.json', function (req, res) {
connection.query('select id, name, created_at from domain', function (error, results, fields) {
if (error) throw error;
var domain = results[0];
if (domain == undefined) {
res.status(404);
res.send({
code: 404,
message: "Not found"
});
} else {
res.send({
code: 200,
message: 'success',
datas: results
});
}
});
});
//Get Domain By ID
app.get('/api/domain/:id.json', function(req, res) {
var domain_id = req.params.id;
var sql1 = 'SELECT * FROM domain WHERE id = "' + domain_id + '"';
connection.query(sql1, function(error, data) {
if (error) throw error;
var domain = data[0];
if (domain == undefined) {
res.status(404);
return res.send({
code: 404,
message: "Not found"
});
}
connection.query('SELECT us.username, us.id FROM user AS us WHERE us.id ="' + domain.user_id + '"', function(error, data1) {
if (error) throw error;
domain["user_id"] = domain["user"];
domain["creator"] = data1[0];
connection.query('SELECT * FROM lang', function(error, result) {
domain["lang"] = result;
res.send({
code: 200,
message: 'success',
datas: domain
});
});
});
});
});
// POST Step 4
app.post('/api/domain/:id/translation.json', function(req, res) {
var domain_id = req.params.id;
var insertQuery = mysql.format("INSERT INTO translation (`key`, `domain_id`) VALUES (?,?);", [req.body.key, domain_id]);
var insertQuery2 = mysql.format("INSERT INTO translation_to_lang (`lang_id`, `value`) VALUES (?,?);", [req.body.lang_id, req.body.value]);
connection.query(insertQuery, function(error, result) {
if (error) {
return res.status(400).send({
code: 400,
message: 'Bad Request'
});
}
connection.query(insertQuery, function(error, result) {
if (error) {
return res.status(400).send({
code: 400,
message: 'Bad Request'
});
}
});
console.log(result);
var selectQuery = mysql.format("SELECT * FROM translation WHERE id = ?;", result.insertId);
connection.query(selectQuery, function(error, data_insert) {
setTimeout(function () {
res.send({
code: 201,
message: 'success',
datas: data_insert
});
}, 1000);
});
});})
app.all('/*', function(req, res, next) {
// CORS headers
res.header("Access-Control-Allow-Origin", "*"); // restrict it to the required domain
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
// Set custom headers for CORS
res.header('Access-Control-Allow-Headers', 'Content-type,Accept,X-Access-Token,X-Key');
if (req.method == 'OPTIONS') {
res.status(200).end();
} else {
res.status(404);
res.send({
code: 404,
message: "Not found"
});
}
}); |
Partager