added pengirim and maps api
This commit is contained in:
@ -1,5 +1,6 @@
|
||||
const express = require('express')
|
||||
const next = require('next')
|
||||
require("dotenv").config();
|
||||
|
||||
const mongoose = require('mongoose');
|
||||
const formData = require('express-form-data');
|
||||
@ -37,9 +38,15 @@ app.prepare().then(() => {
|
||||
|
||||
// import routes
|
||||
const login_router = require('./routes/login_router');
|
||||
const kurir_router = require('./routes/kurir_router');
|
||||
const pengirim_router = require('./routes/pengirim_router');
|
||||
const peta_router = require('./routes/peta_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);
|
||||
|
||||
// connect to mongodb
|
||||
mongoose.connect(process.env.DB_CONNECTION, { useNewUrlParser: true, useUnifiedTopology: true, family: 4})
|
||||
@ -55,6 +62,10 @@ app.prepare().then(() => {
|
||||
return res.status(200).send({ status : true, message : 'connected to api'})
|
||||
});
|
||||
|
||||
server.use('/api',(req, res, next) => {
|
||||
res.status(404).send('404 not found');
|
||||
});
|
||||
|
||||
server.all('*', (req, res) => {
|
||||
return handle(req, res)
|
||||
})
|
||||
@ -72,10 +83,10 @@ app.prepare().then(() => {
|
||||
console.log(`> Ready on http://localhost:${port}`)
|
||||
})
|
||||
|
||||
https.createServer (options, server).listen(3002, (err) => {
|
||||
https.createServer (options, server).listen(3003, (err) => {
|
||||
if (err) throw err
|
||||
|
||||
// console.log(`ini dia ${process.env.DB_CONNECTION}`)
|
||||
console.log(`> Ready on https://localhost:${3002}`)
|
||||
console.log(`> Ready on https://localhost:${3003}`)
|
||||
})
|
||||
})
|
||||
32
server/models/kurir_model.js
Normal file
32
server/models/kurir_model.js
Normal file
@ -0,0 +1,32 @@
|
||||
const mongoose = require('mongoose');
|
||||
|
||||
const pengaturanPengirimanSchema = new mongoose.Schema({
|
||||
id_kurir: {
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
required: true,
|
||||
},
|
||||
biaya_minimal: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
biaya_maksimal: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
biaya_per_kilo: {
|
||||
type: Number,
|
||||
required: true,
|
||||
},
|
||||
created_at: {
|
||||
type: Date,
|
||||
default: Date.now
|
||||
},
|
||||
updated_at: {
|
||||
type: Date,
|
||||
default: Date.now
|
||||
}
|
||||
})
|
||||
|
||||
const pengaturanPengirimanModel = mongoose.model('tb_pengaturan_pengiriman', pengaturanPengirimanSchema , 'tb_pengaturan_pengiriman');
|
||||
|
||||
module.exports = {pengaturanPengirimanModel};
|
||||
27
server/models/peta_model.js
Normal file
27
server/models/peta_model.js
Normal file
@ -0,0 +1,27 @@
|
||||
const mongoose = require('mongoose');
|
||||
|
||||
const petaKecamatanSchema = new mongoose.Schema({
|
||||
kecamatan : {
|
||||
type: String,
|
||||
},
|
||||
polygon:{
|
||||
type: Array,
|
||||
}
|
||||
})
|
||||
|
||||
const petaKelurahanDesaSchema = new mongoose.Schema({
|
||||
kecamatan_id: {
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
},
|
||||
kelurahan_desa: {
|
||||
type: String,
|
||||
},
|
||||
polygon:{
|
||||
type: Array,
|
||||
}
|
||||
})
|
||||
|
||||
const petaKecamatanModel = mongoose.model('tb_kecamatan', petaKecamatanSchema , 'tb_kecamatan');
|
||||
const petaKelurahanDesaModel = mongoose.model('tb_kelurahan_desa', petaKelurahanDesaSchema , 'tb_kelurahan_desa');
|
||||
|
||||
module.exports = {petaKecamatanModel, petaKelurahanDesaModel};
|
||||
80
server/routes/kurir_router.js
Normal file
80
server/routes/kurir_router.js
Normal file
@ -0,0 +1,80 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const md5 = require('md5');
|
||||
|
||||
const { pengaturanPengirimanModel } = require('../models/kurir_model');
|
||||
const { kurirModel, loginUserModel } = require('../models/users_model');
|
||||
|
||||
let googlenya = require('../google/googleapi.js');
|
||||
const pengirim_folder_id = process.env.PENGIRIM_FOLDER_ID;
|
||||
const kurir_folder_id = process.env.KURIR_FOLDER_ID;
|
||||
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;
|
||||
|
||||
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({
|
||||
username: req.query.username,
|
||||
password: req.query.password,
|
||||
role: 'kurir'
|
||||
})
|
||||
if (!cek_login) return res.status(401).send({ message: 'Not Authorized' });
|
||||
const cek_kurir = await kurirModel.findOne({
|
||||
_id: req.query.id
|
||||
})
|
||||
if (!cek_kurir) return res.status(401).send({ message: 'Not Authorized' });
|
||||
next()
|
||||
}
|
||||
|
||||
// create '/pengaturan' post route
|
||||
router.post('/pengaturan', cek_user_kurir, async (req, res) => {
|
||||
// console.log('masuk post pengaturan');
|
||||
const minimal_biaya_pengiriman = req.body.minimal_biaya_pengiriman;
|
||||
const maksimal_biaya_pengiriman = req.body.maksimal_biaya_pengiriman;
|
||||
const biaya_per_kilo = req.body.biaya_per_kilo;
|
||||
|
||||
const cek_data = await pengaturanPengirimanModel.findOne({
|
||||
id_kurir: req.query.id
|
||||
});
|
||||
let message, datanya;
|
||||
if (cek_data) {
|
||||
datanya = await pengaturanPengirimanModel.findOneAndUpdate({
|
||||
id_kurir: req.query.id,
|
||||
}, {
|
||||
biaya_minimal: minimal_biaya_pengiriman,
|
||||
biaya_maksimal: maksimal_biaya_pengiriman,
|
||||
biaya_per_kilo: biaya_per_kilo,
|
||||
updated_at: new Date()
|
||||
})
|
||||
message = 'Pengaturan pengiriman berhasil diubah';
|
||||
|
||||
} else {
|
||||
datanya = new pengaturanPengirimanModel({
|
||||
id_kurir: req.query.id,
|
||||
biaya_minimal: minimal_biaya_pengiriman,
|
||||
biaya_maksimal: maksimal_biaya_pengiriman,
|
||||
biaya_per_kilo,
|
||||
created_at: new Date(),
|
||||
updated_at: new Date()
|
||||
});
|
||||
await datanya.save();
|
||||
message = 'Pengaturan biaya pengiriman berhasil dibuat';
|
||||
console.log("data baru");
|
||||
}
|
||||
|
||||
res.status(200).send({ message: message, data: datanya });
|
||||
})
|
||||
|
||||
// create '/pengaturan' get route
|
||||
router.get('/pengaturan', cek_user_kurir, async (req, res) => {
|
||||
// console.log('masuk get pengaturan');
|
||||
const cek_data = await pengaturanPengirimanModel.findOne({
|
||||
id_kurir: req.query.id
|
||||
});
|
||||
if (!cek_data) return res.status(200).send({ message: 'Pengaturan tidak ditemukan' , data: null});
|
||||
res.status(200).send({ message: 'Pengaturan pengiriman berhasil ditemukan', data: cek_data });
|
||||
})
|
||||
|
||||
module.exports = router;
|
||||
|
||||
37
server/routes/pengirim_router.js
Normal file
37
server/routes/pengirim_router.js
Normal file
@ -0,0 +1,37 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
|
||||
const {pengirimModel, loginUserModel} = require('../models/users_model');
|
||||
|
||||
|
||||
let googlenya = require('../google/googleapi.js');
|
||||
const pengirim_folder_id = process.env.PENGIRIM_FOLDER_ID;
|
||||
const kurir_folder_id = process.env.KURIR_FOLDER_ID;
|
||||
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;
|
||||
|
||||
async function cek_user_pengirim(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({
|
||||
username: req.query.username,
|
||||
password: req.query.password,
|
||||
role: 'pengirim'
|
||||
})
|
||||
if (!cek_login) return res.status(401).send({ message: 'Not Authorized' });
|
||||
const cek_pengirim = await pengirimModel.findOne({
|
||||
_id: req.query.id
|
||||
})
|
||||
if (!cek_pengirim) return res.status(401).send({ message: 'Not Authorized' });
|
||||
next()
|
||||
}
|
||||
|
||||
|
||||
// create get route
|
||||
router.get('/', cek_user_pengirim, async (req, res) => {
|
||||
console.log("sini router get pengirim");
|
||||
res.status(200).send({ message: 'connected to pengirim' })
|
||||
})
|
||||
|
||||
module.exports = router;
|
||||
56
server/routes/peta_router.js
Normal file
56
server/routes/peta_router.js
Normal file
@ -0,0 +1,56 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
const { petaKecamatanModel, petaKelurahanDesaModel } = require('../models/peta_model');
|
||||
|
||||
// create get route
|
||||
router.get('/', async (req, res) => {
|
||||
console.log("sini router get peta");
|
||||
res.status(200).send({ message: 'connected to peta' })
|
||||
})
|
||||
|
||||
// create '/kecamatan' get route
|
||||
router.get('/kecamatan', async (req, res) => {
|
||||
try {
|
||||
// const nama = req.query.nama;
|
||||
let data;
|
||||
// if (nama == null) {
|
||||
// data = await petaKecamatanModel.find({});
|
||||
// }else
|
||||
data = await petaKecamatanModel.findOne({
|
||||
kecamatan: "Enrekang"
|
||||
});
|
||||
console.log("sini cari kecamatan");
|
||||
res.status(200).send({ data: data });
|
||||
} catch (error) {
|
||||
console.log(error, " ini error di peta kecamatan");
|
||||
res.status(500).send({ message: 'Internal Server Error' });
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
|
||||
// create '/kelurahan_desa' get route
|
||||
router.get('/kelurahan_desa', async (req, res) => {
|
||||
try {
|
||||
const kelurahan_desa = req.query.kelurahan_desa;
|
||||
let data;
|
||||
if(kelurahan_desa != null && kelurahan_desa != ""){
|
||||
data = await petaKelurahanDesaModel.findOne({
|
||||
kelurahan_desa: kelurahan_desa
|
||||
});
|
||||
}else{
|
||||
// exclude polygon
|
||||
data = await petaKelurahanDesaModel.find().select('-polygon');
|
||||
}
|
||||
console.log("sini cari kelurahan_desa");
|
||||
res.status(200).send({ data: data });
|
||||
} catch (error) {
|
||||
console.log(error, " ini error di peta kelurahan desa");
|
||||
res.status(500).send({ message: 'Internal Server Error' });
|
||||
}
|
||||
|
||||
|
||||
})
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user