change mongodb to mongo atlas
This commit is contained in:
20
server/cert.crt
Normal file
20
server/cert.crt
Normal file
@ -0,0 +1,20 @@
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDSDCCAjCgAwIBAgIUWbslfvpB3c1tqw/YXflXxI/IzAIwDQYJKoZIhvcNAQEL
|
||||
BQAwPzEaMBgGA1UECgwRRHVtbXkgQ2VydGlmaWNhdGUxITAfBgNVBAMMGCoubG9j
|
||||
YWxob3N0L0NOPWxvY2FsaG9zdDAeFw0yMjAzMTYyMzE1MTZaFw0yMzAzMTYyMzE1
|
||||
MTZaMD8xGjAYBgNVBAoMEUR1bW15IENlcnRpZmljYXRlMSEwHwYDVQQDDBgqLmxv
|
||||
Y2FsaG9zdC9DTj1sb2NhbGhvc3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
|
||||
AoIBAQCyCS4dPAyx3p8qT8QcUWsJNQRsCtGxDQSQR3kaN278+VjNMOZLLo3PZ427
|
||||
7NKomNLDd4ryysqktZfMewymMjRAYIrYTFq+sP1ulEz7/4+EhGLlSsoMlT/dWNy8
|
||||
MRx6eJf3ISu9HyYI9GjKrt5XmF8fvBjF9FUyeg/GuSXRJvD6dw/czEeUOVZxFwfD
|
||||
0ohjZRX8Lrq1gvb5D20Z4N+0pywg6ZAxHtQJEHldAgkQN8eJ36flWfpPzBm97MmW
|
||||
vij5dFiccQAcLhFXieASuVX/60IXQQIF4wKpJbN552iQhJKmsPTNrjMG7xUPK1RJ
|
||||
MtGXJOJedTbV9aXsFtDxI+vRncWdAgMBAAGjPDA6MBMGA1UdJQQMMAoGCCsGAQUF
|
||||
BwMBMCMGA1UdEQQcMBqCGCoubG9jYWxob3N0L0NOPWxvY2FsaG9zdDANBgkqhkiG
|
||||
9w0BAQsFAAOCAQEAhTi8KQCZfWgwYTIujXh7tQ6yoWy40x7pWHkUDI1nwhtbyhQv
|
||||
XXKX/3TQhIJKcTDB7UbcTulk1qWOMlK5U6b0J3lU/UNaPQgmmjqLhJmblkQawhVW
|
||||
tbYxlUwikgA7zo2s5H0x8Oy1/Ebc5KUcD3YFmW06Rqm7IYWrd48zw3/JICzr6ba2
|
||||
JpcjVzVBi5RANZdzemnPdIZZOHGo7V9Kzu6NKJ/liNt5x+A9LuIQZw73YpmHurVG
|
||||
7l+A41pyptxwANYW4EStnbaeIvRh8rVtTaJpbynbywuOYfh5nP9t/iIFnov0RDWQ
|
||||
9AQKcadiJyQW8qFX7ldj+zgeqaaQxTKrYI4b3Q==
|
||||
-----END CERTIFICATE-----
|
||||
27
server/cert.key
Normal file
27
server/cert.key
Normal file
@ -0,0 +1,27 @@
|
||||
-----BEGIN RSA PRIVATE KEY-----
|
||||
MIIEpAIBAAKCAQEAsgkuHTwMsd6fKk/EHFFrCTUEbArRsQ0EkEd5Gjdu/PlYzTDm
|
||||
Sy6Nz2eNu+zSqJjSw3eK8srKpLWXzHsMpjI0QGCK2ExavrD9bpRM+/+PhIRi5UrK
|
||||
DJU/3VjcvDEceniX9yErvR8mCPRoyq7eV5hfH7wYxfRVMnoPxrkl0Sbw+ncP3MxH
|
||||
lDlWcRcHw9KIY2UV/C66tYL2+Q9tGeDftKcsIOmQMR7UCRB5XQIJEDfHid+n5Vn6
|
||||
T8wZvezJlr4o+XRYnHEAHC4RV4ngErlV/+tCF0ECBeMCqSWzeedokISSprD0za4z
|
||||
Bu8VDytUSTLRlyTiXnU21fWl7BbQ8SPr0Z3FnQIDAQABAoIBAQCF7q4IRCJwtL8c
|
||||
P4GSpBVXidDXzpPNE7P5LiuGc2lFWfdZ9Y1pxY3dF1PiqdgYCU+UyJt45uHnYszd
|
||||
gTwU0vPH8ljBOz+Q8OjWhS4c7TZ0RHt5bvfs22J+C9mSoYeBArOfsA6NaZ9dYTBs
|
||||
OXz+fJwi7Yfdc1+cZ4LyxloSq67hW+sCXIoFo667ovz3sagfEGgRRrBKh4WcD99l
|
||||
n/JEuse4sl732i01c6HahsIAwhiMu0vZpiIT/b5odg7fO6OLDTGx/RCOk4TyCUUs
|
||||
DKGhAbpON01+t5icBK6RhtJpuZxA6Pim9/JOW4lAeHL1D5173X09tiWraRATtUmo
|
||||
LFV/uV7BAoGBANpd5xOW2Qn4EbKZiZGVY2ahbnb2iieilQzDszGQTjpaiddwlXIN
|
||||
UtP0HJ18GA4JDM+/7WfgtdjkgvdJZFAWRZX3cuLzda/A/z1YOhFzfYl6whW+cmtM
|
||||
kxdSWnH0/1TiKJGevhos0C/8plrFpSPRVuRw26udVpwSQqg/SuJzSaXpAoGBANC3
|
||||
6+uQYyxlp4BU/BsYsUyln235sIT2eL0BHleZuS39XKObbNmG19ndCd5lu9XMSBkZ
|
||||
a050B/YmKpHwlE+C66YUZhCNtrYyXfFd99F20iBreGnADj0Y8GTFNUXc33ygEJQI
|
||||
2mLH9UttNoTnTvtcjEJ5HV0P8ILiPm6EBNo9vG2VAoGAZgm7EMxMXvwsSOi1//Fu
|
||||
oWaN18kchajTPUO1WFO2Ok5UWveg3cqcCa7oMC7sjqJr+igVJ5U5ZEBjcmo5FbNS
|
||||
kOEwLhzVwWrN2jx/5eexoaxbRQ3ZKYp+sUcqPFXfeiq0ClfDPTfzkHjew0vX/wSz
|
||||
NcwG2gqLjiJ6Q2RP+cEliQECgYEAlOL+WhWviRYivHrjM/kTUNe8uNiqwM6JJlpL
|
||||
6LVx0YqwsMzIgwubon/48DqmGUcWD0GAuIAwxbhIGb8CLQ35R4m5nQlaUvHu7aTY
|
||||
iQU3s4S2aslj3tWRdnDvJZz/l4kfClqeXmTBaELJ51iRkOFd9HUtKxuZt+PoITHv
|
||||
vDbZ2VkCgYAK3brx7BnphTC/16bkfes/J/qfXIO0+f6gJsmwKnOdA9A4g/IvGoCX
|
||||
uW0N6Z1JJH0C4xZNtalDSRAAH4x9A9DPLAzz0VIFU9OiO4bkHzKwc/gH9SIBTR/C
|
||||
8OiAB7+SMQYpiXFGIFjjiTqJNKDRnf4EBEpwg7HN4gRsjUgv0danEA==
|
||||
-----END RSA PRIVATE KEY-----
|
||||
12
server/googlekey.json
Normal file
12
server/googlekey.json
Normal file
@ -0,0 +1,12 @@
|
||||
{
|
||||
"type": "service_account",
|
||||
"project_id": "kurir-project-347217",
|
||||
"private_key_id": "909837ad8b64d351de550354d0f9cfe5e876eff9",
|
||||
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCwWCh3QtfgTn5+\nNl9hviQ+E3aIPcCYqiaOSk16F304N4rC3xANrpNfqEKZvcciPpZmcMp+YC66jqvM\nJi4Zby4ZY44uhoQ34AqHzF0E1hmzTUtQcGqDTJ76jtcnQXYBg3aLXKm4fjyggxSa\nE0pEsiIpi8R7STHws8V8LJzBZFvAstuVa6FTnnCtYNVgMt7flwePG240wKKECKc5\nKyZ+iOvBsCRwSNv2WIblq9AQqfKZxKv7aW4049BNwNKnlcLxDuBqgUkP0y4CnAHw\ns79r6uj6JYvJ9jL1Fqv7DIAfwbd1z61PYgKj+zgUopb/svYnZA75CPp2R6RwpQYc\nVL6hf+KBAgMBAAECggEAAscqFgeLyo5kqud/ilTk5xnGjtVi32ojcto5TRB/KhT3\n6Y4lh4L7R9u+TC6OQJwZ9vGqbaIQF7jFJzwSaFdVHinFv4u3cVY6cZK22WtnsBMq\nOfwXYCD4yoDYY1eCPM+zHPVqqAvMYolGGGTwO9OkOvbRyNEUSWgvltSbazwslNpw\nbJqetnI4cLvWtgbQvHiLzOghZwMZXSLJ2Bl0y2SGc4yjbrV+2Ll4Zq8oAiv2RWa8\nDe7lNu1KSPkAlLJGvYiApXcgZvJQR48LH9W8spYAAkdIf1LSROcGCCmpLnrCu0kK\nkkUk9p7F7ozCvaAzYlIzjQ4MyUihUP9t11jD0UISEQKBgQDd2w6kVFmO4FeK/w1h\nkZDlPIYIIuoLhZMIbXEC7DaGNbc+gIOtuQPgVD2h8QbUsJiZn6OQhebex3d5rTxg\ngJqThvdRgh0j8LArRcS11CTyd9hW9uIGrfWDIgbYNoCsco+r9Zto86V+aSRL1Hcv\nACtpyRcjDqHERat5KCUjyRZXyQKBgQDLe/1nMOtaxr9UNRXYEgztVRnbkXnslf0I\ned3Ul4MD5K3VDRF6JN6BykLszr82c527XWrzhxClK3YSHWjA0LouWyzEJTQiRyco\nyz6Vd3KqYKvxKpzr8DAIa/67HTIc6qJWSHfgZUnUs0btEyeGeJf00qUIhZwuKVfw\nphfNF+CA+QKBgA3dowyiOPa1DsOhLTTr5CJvpfDcPcR6lLXyIR4NpVq+ALXnUlOJ\nPLTIjxGP/t1MLD1tvMtLkyJZVR5FtYBSiVavGMX/W9LjOB98PM8gcy60TtEgnP/N\n34pSlhrtTR16C4Cz2QK2N6Gu8JXMsaY+XHhAGTIXuASMVis8VxXle4ABAoGBALrx\n1ONjLDcf9VO12bXDD6FT2AfDZZKYUfnhjI3uDO4cwB/Ge9IN4Wa4njfV0hKCsd0b\nfFD0O7Sjczw9TKoomYRRO5WQ4I7FdBKkd4D2VqB1ZEKS9cxFxLtYDJV3wzyRzEcd\nGRVNuUDy3Cyetmdyj5jblcd4iP5X+XUcAy3ny9hxAoGANlqXYq9wk7vsmlqu5Pz7\nBbupKGNhVwtmQAm3RDudtzbP/qi8awI3g22j4x05UHXnmIVPIEGbjajBIad5PH0s\nI7G2H/Gx91rDN4ym3e3zTVpNyHu8usMo+TVPGsPYrxAjlSo+7HUc/VacOMQvSgXw\nrHEYekIt1HEDgbyWEV23cqI=\n-----END PRIVATE KEY-----\n",
|
||||
"client_email": "googledrive@kurir-project-347217.iam.gserviceaccount.com",
|
||||
"client_id": "115368903585615403523",
|
||||
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
|
||||
"token_uri": "https://oauth2.googleapis.com/token",
|
||||
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
|
||||
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/googledrive%40kurir-project-347217.iam.gserviceaccount.com"
|
||||
}
|
||||
132
server/index.js
132
server/index.js
@ -23,6 +23,7 @@ app.prepare().then(() => {
|
||||
const http = require('http')
|
||||
const https = require('https')
|
||||
const fs = require('fs')
|
||||
const { pengirimanBarangModel } = require('./models/pengirim_model');
|
||||
|
||||
const options = {
|
||||
key: fs.readFileSync('./server/cert.key'),
|
||||
@ -41,12 +42,17 @@ app.prepare().then(() => {
|
||||
const kurir_router = require('./routes/kurir_router');
|
||||
const pengirim_router = require('./routes/pengirim_router');
|
||||
const peta_router = require('./routes/peta_router');
|
||||
const login_admin_router = require('./routes/login_admin_router');
|
||||
const admin_router = require('./routes/admin_router')
|
||||
|
||||
// use routes
|
||||
server.use('/api/login', login_router);
|
||||
server.use('/api/kurir', kurir_router);
|
||||
server.use('/api/pengirim', pengirim_router);
|
||||
server.use('/api/peta', peta_router);
|
||||
server.use('/api/login_admin', login_admin_router);
|
||||
server.use('/api/admin', admin_router);
|
||||
|
||||
|
||||
// connect to mongodb
|
||||
mongoose.connect(process.env.DB_CONNECTION, { useNewUrlParser: true, useUnifiedTopology: true, family: 4 })
|
||||
@ -57,17 +63,56 @@ app.prepare().then(() => {
|
||||
})
|
||||
|
||||
|
||||
const io = require("socket.io-client");
|
||||
const socket = io("http://localhost:3001/");
|
||||
// const io = require("socket.io-client");
|
||||
// const socket = io("http://localhost:3001/");
|
||||
|
||||
server.get('/coba2', (req, res) => {
|
||||
console.log("sini coba2");
|
||||
// socket.emit('info_pengiriman', {
|
||||
// id_pengirim: '62be1a1a97c4a38caea7a5d8',
|
||||
// id_pengiriman: '62c0088948578c0819b90343'
|
||||
// }) // ini untuk info pengiriman refresh
|
||||
|
||||
// socket.emit('info_detail_paket', {
|
||||
// // id_pengirim: '62be1a1a97c4a38caea7a5d8',
|
||||
// id_pengiriman: '62c0088948578c0819b90343'
|
||||
// }) // ini untuk info paket refresh
|
||||
return res.status(200).send({ status: true, message: 'connected to coba2' })
|
||||
})
|
||||
|
||||
server.get('/api', (req, res) => {
|
||||
console.log("ada org request");
|
||||
socket.emit('coba2', {
|
||||
data: 'coba2'
|
||||
})
|
||||
|
||||
return res.status(200).send({ status: true, message: 'connected to api' })
|
||||
});
|
||||
|
||||
server.get('/api/check_paket' ,async (req, res) => {
|
||||
try {
|
||||
const id_paket = req.query.id_paket;
|
||||
console.log(id_paket);
|
||||
const check = await pengirimanBarangModel.findOne({ _id: id_paket });
|
||||
if(!check) {
|
||||
return res.status(400).send({ status: false, message: 'paket tidak ditemukan' , data: null})
|
||||
}
|
||||
|
||||
const cek_data = await pengirimanBarangModel.findOne({
|
||||
_id: id_paket,
|
||||
|
||||
}).select(' -kurir -__v -pengirim').populate({
|
||||
path: 'pengirim',
|
||||
select: '-__v -created_at -updated_at -status'
|
||||
|
||||
}).populate({
|
||||
path: 'kurir',
|
||||
select: '-__v -created_at -updated_at -status'
|
||||
})
|
||||
// console.log(data);
|
||||
return res.status(200).send({ status: true, message: 'connected to api' , data : cek_data })
|
||||
}catch(err){
|
||||
return res.status(500).send({ status: false, message: 'error' , data: null})
|
||||
}
|
||||
})
|
||||
|
||||
server.use('/api', (req, res, next) => {
|
||||
res.status(404).send('404 not found');
|
||||
});
|
||||
@ -87,27 +132,68 @@ app.prepare().then(() => {
|
||||
|
||||
const { Server } = require("socket.io");
|
||||
const io1 = new Server(_server);
|
||||
const io2 = new Server(_server_https);
|
||||
// const io2 = new Server(_server_https);
|
||||
|
||||
let users = {};
|
||||
io1.on('connection', (socket) => {
|
||||
console.log('socket connected');
|
||||
socket.on('coba2', (_) => {
|
||||
console.log(_ , " ini di dia coba2");
|
||||
io1.emit('percobaan1', {
|
||||
let userId = socket.id;
|
||||
|
||||
if (!users[userId]) users[userId] = [];
|
||||
users[userId].push(socket.id);
|
||||
|
||||
|
||||
console.log('socket connected', userId);
|
||||
socket.on('info_pengiriman', (_) => {
|
||||
console.log(_, " info_pengiriman");
|
||||
io1.emit('info_pengiriman_id=' + _.id_pengirim, {
|
||||
data: 'percobaan1',
|
||||
message:"ini terkirim ke user"
|
||||
message: "ini terkirim ke user"
|
||||
})
|
||||
|
||||
|
||||
}); // ini untuk info pengiriman refresh
|
||||
|
||||
socket.on('info_detail_paket', (_) => {
|
||||
console.log(_, " info_detail_paket");
|
||||
io1.emit('info_detail_paket=' + _.id_pengiriman, {
|
||||
data: 'percobaan1',
|
||||
message: "ini terkirim ke user"
|
||||
})
|
||||
|
||||
}); // ini untuk info paket refresh
|
||||
|
||||
socket.on('disconnect_it', (reason) => {
|
||||
console.log("sini untuk disconnect");
|
||||
console.log(reason);
|
||||
// REMOVE FROM SOCKET USERS
|
||||
// reason.remove(users[userId], (u) => u === socket.id);
|
||||
// if (users[userId].length === 0) {
|
||||
// // ISER IS OFFLINE BROAD CAST TO ALL CONNECTED USERS
|
||||
// console.log("offline", userId);
|
||||
// // REMOVE OBJECT
|
||||
delete users[reason];
|
||||
// }
|
||||
|
||||
socket.disconnect(); // DISCONNECT SOCKET
|
||||
|
||||
});
|
||||
|
||||
socket.on('pengiriman_create', (_) => {
|
||||
console.log(_ ," ini dia pengiriman_create");
|
||||
socket.on('disconnect', (reason) => {
|
||||
console.log("sini untuk disconnect1");
|
||||
console.log(reason);
|
||||
|
||||
io1.emit('pengiriman_create'+_.id_pengirim, {
|
||||
message: 'Pengiriman Baru Untuk Anda',
|
||||
id_pengiriman : _.id_pengiriman,
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
socket.on('tambah_verifikasi_kurir', (_) => {
|
||||
console.log(_, " tambah_verifikasi_kurir");
|
||||
io1.emit('tambah_verifikasi_kurir')
|
||||
|
||||
});
|
||||
socket.on('tambah_verifikasi_pengirim', (_) => {
|
||||
console.log(_, " tambah_verifikasi_pengirim");
|
||||
io1.emit('tambah_verifikasi_pengirim')
|
||||
|
||||
});
|
||||
})
|
||||
|
||||
// io2.on('connection', (socket) => {
|
||||
@ -121,10 +207,10 @@ app.prepare().then(() => {
|
||||
console.log(`> Ready on http://localhost:${port}`)
|
||||
})
|
||||
|
||||
_server_https.listen(3003, (err) => {
|
||||
if (err) throw err
|
||||
// _server_https.listen(3003, (err) => {
|
||||
// if (err) throw err
|
||||
|
||||
// console.log(`ini dia ${process.env.DB_CONNECTION}`)
|
||||
console.log(`> Ready on https://localhost:${3003}`)
|
||||
})
|
||||
// // console.log(`ini dia ${process.env.DB_CONNECTION}`)
|
||||
// console.log(`> Ready on https://localhost:${3003}`)
|
||||
// })
|
||||
})
|
||||
131
server/routes/admin_router.js
Normal file
131
server/routes/admin_router.js
Normal file
@ -0,0 +1,131 @@
|
||||
//create express router
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
const { pengirimModel, kurirModel } = require('../models/users_model');
|
||||
|
||||
|
||||
var ironSession = require("iron-session/express").ironSession;
|
||||
var session = ironSession({
|
||||
cookieName: "myapp_cookiename",
|
||||
// password: process.env.SECRET_COOKIE_PASSWORD,
|
||||
password: process.env.IRON_SESSION,
|
||||
cookieOptions: {
|
||||
secure: process.env.NODE_ENV === "production",
|
||||
},
|
||||
});
|
||||
|
||||
const jwt = require('jsonwebtoken');
|
||||
|
||||
// create '/get_all_kurir' get method
|
||||
router.get('/get_all_kurir_verifikasi', session, authenticateToken, async (req, res) => {
|
||||
try {
|
||||
const kurir = await kurirModel.find({
|
||||
status : 'Evaluasi'
|
||||
}).sort({ created_at: -1 })
|
||||
return res.status(200).send({ status: true, data: kurir })
|
||||
}
|
||||
catch (error) {
|
||||
console.log(error);
|
||||
res.status(500).send({ message: error.message });
|
||||
}
|
||||
})
|
||||
|
||||
// create '/get_all_kurir' get method
|
||||
router.get('/get_all_kurir', session, authenticateToken, async (req, res) => {
|
||||
try {
|
||||
const kurir = await kurirModel.find({
|
||||
status : 'Aktif'
|
||||
}).sort({ created_at: -1 })
|
||||
return res.status(200).send({ status: true, data: kurir })
|
||||
}
|
||||
catch (error) {
|
||||
console.log(error);
|
||||
res.status(500).send({ message: error.message });
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
router.get('/get_all_pengirim', session, authenticateToken, async (req, res) => {
|
||||
try {
|
||||
const pengirim = await pengirimModel.find().sort({ created_at: -1 })
|
||||
return res.status(200).send({ status: true, data: pengirim })
|
||||
}
|
||||
catch (error) {
|
||||
console.log(error);
|
||||
res.status(500).send({ message: error.message });
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
// create 'verifikasi_kurir' post method
|
||||
router.post('/verifikasi_kurir', session, authenticateToken, async (req, res) => {
|
||||
try {
|
||||
const { id_kurir } = req.body;
|
||||
console.log(id_kurir, "ini id kurir di server")
|
||||
|
||||
|
||||
const kurir = await kurirModel.findByIdAndUpdate(id_kurir, {
|
||||
status : 'Aktif'
|
||||
});
|
||||
|
||||
const kurir_all = await kurirModel.find({
|
||||
status : 'Evaluasi'
|
||||
});
|
||||
return res.status(200).send({ status: true, data: kurir_all })
|
||||
}
|
||||
catch (error) {
|
||||
console.log(error);
|
||||
res.status(500).send({ message: error.message });
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
// create 'verifikasi_kurir' post method
|
||||
router.post('/batalkan_kurir', session, authenticateToken, async (req, res) => {
|
||||
try {
|
||||
const { id_kurir } = req.body;
|
||||
console.log(id_kurir, "ini id kurir di server")
|
||||
|
||||
|
||||
const kurir = await kurirModel.findByIdAndUpdate(id_kurir, {
|
||||
status : 'Ditolak'
|
||||
});
|
||||
|
||||
const kurir_all = await kurirModel.find({
|
||||
status : 'Evaluasi'
|
||||
});
|
||||
return res.status(200).send({ status: true, data: kurir_all })
|
||||
}
|
||||
catch (error) {
|
||||
console.log(error);
|
||||
res.status(500).send({ message: error.message });
|
||||
}
|
||||
})
|
||||
|
||||
function authenticateToken(req, res, next) {
|
||||
// console.log(req.session, " ini authenticate")
|
||||
const authHeader = req.headers['authorization']
|
||||
const token = authHeader && authHeader.split(' ')[1]
|
||||
if (token == null) {
|
||||
req.session.destroy();
|
||||
return res.sendStatus(401);
|
||||
}
|
||||
|
||||
|
||||
jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, (err, user) => {
|
||||
if (err) {
|
||||
req.session.destroy();
|
||||
return res.sendStatus(403);
|
||||
}
|
||||
|
||||
req.user = user
|
||||
next()
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
module.exports = router;
|
||||
@ -13,6 +13,9 @@ const ktp_kurir_folder_id = process.env.KTP_KURIR_FOLDER_ID;
|
||||
const ktp_holding_kurir_folder_id = process.env.KTP_HOLDING_KURIR_FOLDER_ID;
|
||||
const kenderaan_kurir_folder_id = process.env.KENDERAAN_KURIR_FOLDER_ID;
|
||||
|
||||
const io = require("socket.io-client");
|
||||
const socket = io("http://localhost:3001/");
|
||||
|
||||
async function cek_user_kurir(req, res, next) {
|
||||
if (req.query.username == null && req.query.password == null && req.query.id == null) return res.status(401).send({ message: 'Not Authorized' });
|
||||
const cek_login = await loginUserModel.findOne({
|
||||
@ -106,10 +109,10 @@ router.get('/pengiriman_kurir_dalam_pengesahan', cek_user_kurir, async (req, res
|
||||
{ status_pengiriman: 'Menghantar Paket Pengiriman Ke Penerima' },
|
||||
]
|
||||
}).select(' -kurir -__v ').sort({ updated_at: -1 }).populate({
|
||||
path: 'pengirim',
|
||||
select: '-__v -created_at -updated_at -status'
|
||||
path: 'pengirim',
|
||||
select: '-__v -created_at -updated_at -status'
|
||||
|
||||
});
|
||||
});
|
||||
res.status(200).send({ message: 'Data berhasil ditemukan', data: cek_data });
|
||||
} catch (error) {
|
||||
res.status(500).send({ message: 'Internal Server Error', data: null });
|
||||
@ -129,10 +132,10 @@ router.get('/pengiriman_completed', cek_user_kurir, async (req, res) => {
|
||||
{ status_pengiriman: 'Paket Diterima Oleh Penerima' },
|
||||
]
|
||||
}).select(' -kurir -__v ').sort({ updated_at: -1 }).populate({
|
||||
path: 'pengirim',
|
||||
select: '-__v -created_at -updated_at -status'
|
||||
path: 'pengirim',
|
||||
select: '-__v -created_at -updated_at -status'
|
||||
|
||||
});
|
||||
});
|
||||
res.status(200).send({ message: 'Data berhasil ditemukan', data: cek_data });
|
||||
} catch (error) {
|
||||
res.status(500).send({ message: 'Internal Server Error', data: null });
|
||||
@ -192,10 +195,10 @@ router.get('/pengirim', cek_user_kurir, async (req, res) => {
|
||||
|
||||
// create '/detail_pengiriman' get route
|
||||
router.get('/detail_pengiriman', cek_user_kurir, async (req, res) => {
|
||||
try{
|
||||
try {
|
||||
id_pengiriman = req.query.id_pengiriman;
|
||||
// console.log('masuk get detail_pengiriman');
|
||||
|
||||
|
||||
const cek_data = await pengirimanBarangModel.findOne({
|
||||
_id: id_pengiriman,
|
||||
kurir: req.query.id
|
||||
@ -243,9 +246,94 @@ router.post('/mengambil_paket_pengiriman', cek_user_kurir, async (req, res) => {
|
||||
// console.log(cek_pengiriman);
|
||||
|
||||
res.status(200).send({ message: 'Pengiriman berhasil disahkan', data: cek_pengiriman });
|
||||
} catch (error) {
|
||||
res.status(500).send({ message: 'Internal Server Error', data: null });
|
||||
} catch (error) {
|
||||
res.status(500).send({ message: 'Internal Server Error', data: null });
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
// create 'konfirmasi_terima_paket_pengirim' post route
|
||||
router.post('/konfirmasi_terima_paket_pengirim', cek_user_kurir, async (req, res) => {
|
||||
try {
|
||||
const id_pengiriman = req.body.id_pengiriman;
|
||||
const cek_data = await pengirimanBarangModel.findOne({
|
||||
_id: id_pengiriman,
|
||||
kurir: req.query.id
|
||||
});
|
||||
|
||||
if (!cek_data) return res.status(400).send({ message: 'Data tidak ditemukan', data: null });
|
||||
|
||||
const cek_pengiriman = await pengirimanBarangModel.findOneAndUpdate({
|
||||
_id: id_pengiriman,
|
||||
kurir: req.query.id
|
||||
}
|
||||
, {
|
||||
status_pengiriman: 'Menghantar Paket Pengiriman Ke Penerima',
|
||||
// push to history
|
||||
$push: {
|
||||
history: {
|
||||
status_pengiriman: 'Menghantar Paket Pengiriman Ke Penerima',
|
||||
}
|
||||
},
|
||||
|
||||
updated_at: new Date()
|
||||
}
|
||||
, { new: true }
|
||||
);
|
||||
// console.log(cek_pengiriman);
|
||||
|
||||
socket.emit('info_detail_paket', {
|
||||
// id_pengirim: '62be1a1a97c4a38caea7a5d8',
|
||||
id_pengiriman: id_pengiriman,
|
||||
})
|
||||
|
||||
res.status(200).send({ message: 'Paket pengiriman berhasil diterima dari pengirim\nMenghantar paket ke penerima', data: cek_pengiriman });
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
res.status(500).send({ message: 'Internal Server Error', data: null });
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
// create 'konfirmasi_terima_paket_penerima' post route
|
||||
// router.post('/konfirmasi_terima_paket_penerima', cek_user_kurir, async (req, res) => {
|
||||
router.post('/konfirmasi_terima_paket_penerima', async (req, res) => {
|
||||
try {
|
||||
const id_pengiriman = req.body.id_pengiriman;
|
||||
const cek_data = await pengirimanBarangModel.findOne({
|
||||
_id: id_pengiriman,
|
||||
kurir: req.query.id
|
||||
});
|
||||
|
||||
if (!cek_data) return res.status(400).send({ message: 'Data tidak ditemukan', data: null });
|
||||
|
||||
const cek_pengiriman = await pengirimanBarangModel.findOneAndUpdate({
|
||||
_id: id_pengiriman,
|
||||
kurir: req.query.id
|
||||
}
|
||||
, {
|
||||
status_pengiriman: 'Paket Diterima Oleh Penerima',
|
||||
// push to history
|
||||
$push: {
|
||||
history: {
|
||||
status_pengiriman: 'Paket Diterima Oleh Penerima',
|
||||
}
|
||||
},
|
||||
|
||||
updated_at: new Date()
|
||||
}
|
||||
, { new: true }
|
||||
);
|
||||
// console.log(cek_pengiriman);
|
||||
socket.emit('info_detail_paket', {
|
||||
// id_pengirim: '62be1a1a97c4a38caea7a5d8',
|
||||
id_pengiriman: id_pengiriman,
|
||||
})
|
||||
|
||||
res.status(200).send({ message: 'Paket pengiriman berhasil diterima oleh Penerima', data: cek_pengiriman });
|
||||
} catch (error) {
|
||||
res.status(500).send({ message: 'Internal Server Error', data: null });
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
91
server/routes/login_admin_router.js
Normal file
91
server/routes/login_admin_router.js
Normal file
@ -0,0 +1,91 @@
|
||||
//create express router
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
|
||||
var ironSession = require("iron-session/express").ironSession;
|
||||
var session = ironSession({
|
||||
cookieName: "myapp_cookiename",
|
||||
// password: process.env.SECRET_COOKIE_PASSWORD,
|
||||
password: process.env.IRON_SESSION,
|
||||
cookieOptions: {
|
||||
secure: process.env.NODE_ENV === "production",
|
||||
},
|
||||
});
|
||||
|
||||
const jwt = require('jsonwebtoken');
|
||||
|
||||
// crate get
|
||||
router.get('/', session, async (req, res) => {
|
||||
try {
|
||||
const username = req.query.username;
|
||||
const password = req.query.password;
|
||||
|
||||
if(username != 'admin' && password != 'admin'){
|
||||
return res.status(401).send({ status: false, message: 'username or password is wrong' })
|
||||
}
|
||||
|
||||
data = {
|
||||
role :'admin',
|
||||
ini : 'aran'
|
||||
}
|
||||
|
||||
// expired in 1 day
|
||||
const accessToken = jwt.sign(data, process.env.ACCESS_TOKEN_SECRET , { expiresIn: '1d' });
|
||||
|
||||
|
||||
req.session.data = {
|
||||
accessToken: accessToken,
|
||||
role : "admin"
|
||||
}
|
||||
|
||||
await req.session.save();
|
||||
|
||||
return res.status(200).send({ status: true, message: 'login success' , accessToken: accessToken })
|
||||
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
res.status(500).send({ message: error.message });
|
||||
}
|
||||
})
|
||||
|
||||
// create '/logout' get method
|
||||
router.get('/logout', session, authenticateToken , async (req, res) => {
|
||||
try{
|
||||
|
||||
console.log(req.session)
|
||||
// req.session.destroy();
|
||||
return res.status(200).send({ status: true, message: 'logout success' })
|
||||
}
|
||||
catch(error){
|
||||
console.log(error);
|
||||
res.status(500).send({ message: error.message });
|
||||
}
|
||||
})
|
||||
|
||||
// create '/' post
|
||||
router.post('/', authenticateToken, async (req, res) => {
|
||||
console.log(req.user);
|
||||
res.status(200).send({ status: true, message: 'login success' , user: req.user })
|
||||
})
|
||||
|
||||
function authenticateToken(req,res,next){
|
||||
// console.log(req.session , " ini authenticate")
|
||||
const authHeader = req.headers['authorization']
|
||||
const token = authHeader && authHeader.split(' ')[1]
|
||||
if(token == null) return res.sendStatus(401)
|
||||
req.session.destroy();
|
||||
|
||||
jwt.verify(token, process.env.ACCESS_TOKEN_SECRET, (err, user) => {
|
||||
if(err) return res.sendStatus(403)
|
||||
req.session.destroy();
|
||||
req.user = user
|
||||
next()
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
module.exports = router;
|
||||
@ -11,6 +11,9 @@ const ktp_kurir_folder_id = process.env.KTP_KURIR_FOLDER_ID;
|
||||
const ktp_holding_kurir_folder_id = process.env.KTP_HOLDING_KURIR_FOLDER_ID;
|
||||
const kenderaan_kurir_folder_id = process.env.KENDERAAN_KURIR_FOLDER_ID;
|
||||
|
||||
const io = require("socket.io-client");
|
||||
const socket = io("http://localhost:3001/");
|
||||
|
||||
// crate get
|
||||
router.get('/', async (req, res) => {
|
||||
console.log("ada request login");
|
||||
@ -50,7 +53,7 @@ router.get('/', async (req, res) => {
|
||||
// if user is not found
|
||||
if (!user) {
|
||||
res.status(400).send({
|
||||
status :false,
|
||||
status: false,
|
||||
message: 'Username dan Password Salah',
|
||||
focus: 'username'
|
||||
});
|
||||
@ -98,14 +101,23 @@ router.post('/daftar1', async (req, res) => {
|
||||
console.log(isExist + "ini adalag evaluasi");
|
||||
// console.log("ini untuk nik")
|
||||
if (isExist) {
|
||||
let message = (isExist.status == 'Evaluasi') ? 'NIK telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami.\nTim kami akan mengirim ke email yang anda daftarkan sebelumnya untuk konfirmasi pendaftaran' : 'NIK Sudah Terdaftar dan sudah diaktifkan';
|
||||
let message;
|
||||
|
||||
if (isExist.status == 'Evaluasi') {
|
||||
message = 'NIK telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami.\nTim kami akan mengirim ke email yang anda daftarkan sebelumnya untuk konfirmasi pendaftaran';
|
||||
} else if (isExist.status == 'Ditolak') {
|
||||
message = 'NIK ini telah ditolak.\nSilahkan coba NIK lain';
|
||||
} else if (isExist.status == 'Aktif') {
|
||||
message = 'NIK sudah terdaftar sebelumnya';
|
||||
}
|
||||
// let message = (isExist.status == 'Evaluasi') ? 'NIK telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami.\nTim kami akan mengirim ke email yang anda daftarkan sebelumnya untuk konfirmasi pendaftaran' : 'NIK Sudah Terdaftar dan sudah diaktifkan';
|
||||
|
||||
return res.status(400).send({
|
||||
status: false,
|
||||
message: message,
|
||||
focus: 'nik'
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
// check if data.no_telp is exists
|
||||
@ -113,7 +125,17 @@ router.post('/daftar1', async (req, res) => {
|
||||
// console.log(isExist2)
|
||||
// console.log("ini untuk no telpon")
|
||||
if (isExist2) {
|
||||
let message = (isExist2.status == 'Evaluasi') ? 'No Telpon ini telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami.\n Jika anda pemilik no telpon ini, Tim kami akan mengirim ke email yang anda daftarkan sebelumnya untuk konfirmasi pendaftaran' : 'No Telpon Sudah Terdaftar dan sudah diaktifkan';
|
||||
let message;
|
||||
|
||||
if (isExist2.status == 'Evaluasi') {
|
||||
message = 'No Telpon telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami'
|
||||
} else if (isExist2.status == 'Ditolak') {
|
||||
message = 'No Telpon ini telah ditolak'
|
||||
} else if (isExist2.status == 'Aktif') {
|
||||
message = 'No Telpon sudah terdaftar sebelumnya'
|
||||
}
|
||||
|
||||
// let message = (isExist2.status == 'Evaluasi') ? 'No Telpon ini telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami.\n Jika anda pemilik no telpon ini, Tim kami akan mengirim ke email yang anda daftarkan sebelumnya untuk konfirmasi pendaftaran' : 'No Telpon Sudah Terdaftar dan sudah diaktifkan';
|
||||
res.status(400).send({
|
||||
status: false,
|
||||
message: message,
|
||||
@ -127,7 +149,17 @@ router.post('/daftar1', async (req, res) => {
|
||||
// console.log(isExist3)
|
||||
// console.log("ini untuk email")
|
||||
if (isExist3) {
|
||||
let message = (isExist3.status == 'Evaluasi') ? 'Email ini telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami.\nTim kami akan mengirim ke email ini yang anda daftarkan sebelumnya untuk konfirmasi pendaftaran' : 'Email Sudah Terdaftar dan sudah diaktifkan';
|
||||
let message;
|
||||
|
||||
if (isExist3.status == 'Evaluasi') {
|
||||
message = 'Email telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami'
|
||||
} else if (isExist3.status == 'Ditolak') {
|
||||
message = 'Email ini telah ditolak'
|
||||
} else {
|
||||
message = 'Email sudah terdaftar sebelumnya'
|
||||
}
|
||||
|
||||
// let message = (isExist3.status == 'Evaluasi') ? 'Email ini telah terdaftar sebelumnya dan sekarang dalam evaluasi tim kami.\nTim kami akan mengirim ke email ini yang anda daftarkan sebelumnya untuk konfirmasi pendaftaran' : 'Email Sudah Terdaftar dan sudah diaktifkan';
|
||||
res.status(400).send({
|
||||
status: false,
|
||||
message: message,
|
||||
@ -146,18 +178,18 @@ router.post('/daftar1', async (req, res) => {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
res.send({ status: true, message: 'Anda akan mendapat notifikasi di email anda dan juga no telpon jika admin menyetujui ataupun membatalkan pendaftaran anda' });
|
||||
// console.log(data)
|
||||
let new_kurir = new kurirModel(data);
|
||||
|
||||
|
||||
let new_login = new loginUserModel(data);
|
||||
new_login._idnya = new_kurir._id;
|
||||
await new_kurir.save();
|
||||
await new_login.save();
|
||||
// console.log(new_kurir)
|
||||
// console.log(new_login)
|
||||
|
||||
|
||||
|
||||
// add photo_url to new_kurir
|
||||
let id_photo = googlenya.uploadFile(new_kurir._id + ".jpg", req.files.photo.path, kurir_folder_id, "ini photo kurir");
|
||||
@ -180,7 +212,7 @@ router.post('/daftar1', async (req, res) => {
|
||||
const ktp_holding_url = `https://drive.google.com/uc?export=view&id=${await id_ktp_holding}`
|
||||
const kenderaan_url = `https://drive.google.com/uc?export=view&id=${await id_kenderaan}`
|
||||
|
||||
|
||||
|
||||
// await kurirModel.findOneAndUpdate({ _id: new_kurir._id }, {
|
||||
// status: 'Aktif',
|
||||
// photo_url: photo_url,
|
||||
@ -188,6 +220,8 @@ router.post('/daftar1', async (req, res) => {
|
||||
|
||||
await kurirModel.findOneAndUpdate({ _id: new_kurir._id }, { photo_url: photo_url, ktp_url: ktp_url, ktp_holding_url: ktp_holding_url, kenderaan_url: kenderaan_url });
|
||||
|
||||
socket.emit('tambah_verifikasi_kurir')
|
||||
|
||||
// const data = await kurirModel.findOne({ _id: new_kurir._id });
|
||||
|
||||
// console.log(data)
|
||||
@ -261,6 +295,8 @@ router.post('/daftar1', async (req, res) => {
|
||||
|
||||
await new_pengirim.save();
|
||||
await new_login.save();
|
||||
socket.emit('tambah_verifikasi_pengirim')
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user