added tambah pengiriman barang & socket io for later notification
This commit is contained in:
@ -57,6 +57,7 @@ module.exports = {
|
||||
console.log(message)
|
||||
return response.data.id;
|
||||
} catch (error) {
|
||||
console.log(error)
|
||||
console.log('ini error')
|
||||
return error;
|
||||
}
|
||||
|
||||
@ -49,20 +49,26 @@ app.prepare().then(() => {
|
||||
server.use('/api/peta', peta_router);
|
||||
|
||||
// connect to mongodb
|
||||
mongoose.connect(process.env.DB_CONNECTION, { useNewUrlParser: true, useUnifiedTopology: true, family: 4})
|
||||
mongoose.connect(process.env.DB_CONNECTION, { useNewUrlParser: true, useUnifiedTopology: true, family: 4 })
|
||||
let db = mongoose.connection;
|
||||
db.on('error', console.error.bind(console, 'connection error:'));
|
||||
db.once('open', function() {
|
||||
db.once('open', function () {
|
||||
console.log('connected to mongodb');
|
||||
})
|
||||
|
||||
|
||||
|
||||
const io = require("socket.io-client");
|
||||
const socket = io("http://localhost:3001/");
|
||||
|
||||
server.get('/api', (req, res) => {
|
||||
console.log("ada org request");
|
||||
return res.status(200).send({ status : true, message : 'connected to api'})
|
||||
socket.emit('coba2', {
|
||||
data: 'coba2'
|
||||
})
|
||||
return res.status(200).send({ status: true, message: 'connected to api' })
|
||||
});
|
||||
|
||||
server.use('/api',(req, res, next) => {
|
||||
server.use('/api', (req, res, next) => {
|
||||
res.status(404).send('404 not found');
|
||||
});
|
||||
|
||||
@ -76,16 +82,38 @@ app.prepare().then(() => {
|
||||
// // console.log(`ini dia ${process.env.DB_CONNECTION}`)
|
||||
// console.log(`> Ready on http://localhost:${port}`)
|
||||
// })
|
||||
http.createServer(server).listen(port, (err) => {
|
||||
if (err) throw err
|
||||
|
||||
// console.log(`ini dia ${process.env.DB_CONNECTION}`)
|
||||
console.log(`> Ready on http://localhost:${port}`)
|
||||
})
|
||||
const _server = http.createServer(server);
|
||||
const _server_https = https.createServer(options, server);
|
||||
|
||||
https.createServer (options, server).listen(3003, (err) => {
|
||||
const { Server } = require("socket.io");
|
||||
const io1 = new Server(_server);
|
||||
const io2 = new Server(_server_https);
|
||||
|
||||
io1.on('connection', (socket) => {
|
||||
console.log('socket connected');
|
||||
socket.on('coba2', (_) => {
|
||||
console.log(_.toString() +" ini di dia");
|
||||
io1.emit('coba1', {
|
||||
data: 'coba2'
|
||||
})
|
||||
|
||||
});
|
||||
})
|
||||
|
||||
// io2.on('connection', (socket) => {
|
||||
// console.log('socket connected');
|
||||
// })
|
||||
|
||||
_server.listen(port, (err) => {
|
||||
if (err) throw err
|
||||
|
||||
|
||||
// console.log(`ini dia ${process.env.DB_CONNECTION}`)
|
||||
console.log(`> Ready on http://localhost:${port}`)
|
||||
})
|
||||
|
||||
_server_https.listen(3003, (err) => {
|
||||
if (err) throw err
|
||||
|
||||
// console.log(`ini dia ${process.env.DB_CONNECTION}`)
|
||||
console.log(`> Ready on https://localhost:${3003}`)
|
||||
})
|
||||
|
||||
54
server/models/pengirim_model.js
Normal file
54
server/models/pengirim_model.js
Normal file
@ -0,0 +1,54 @@
|
||||
const mongoose = require('mongoose');
|
||||
|
||||
const pengirimanBarangSchema = new mongoose.Schema({
|
||||
nama_penerima: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
no_telpon_penerima: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
alamat_penerima: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
kordinat_pengiriman: {
|
||||
lat :{
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
lng :{
|
||||
type: String,
|
||||
required: true,
|
||||
}
|
||||
},
|
||||
kelurahan_desa: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
foto_pengiriman: {
|
||||
type: String
|
||||
},
|
||||
kurir: {
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: 'tb_kurir'
|
||||
},
|
||||
pengirim : {
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: 'tb_pengirim'
|
||||
},
|
||||
created_at: {
|
||||
type: Date,
|
||||
default: Date.now
|
||||
},
|
||||
updated_at: {
|
||||
type: Date,
|
||||
default: Date.now
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
const pengirimanBarangModel = mongoose.model('tb_pengiriman_barang', pengirimanBarangSchema , 'tb_pengiriman_barang');
|
||||
|
||||
module.exports = {pengirimanBarangModel};
|
||||
@ -38,7 +38,11 @@ const pengirimSchema = new mongoose.Schema({
|
||||
updated_at: {
|
||||
type: Date,
|
||||
default: Date.now
|
||||
}
|
||||
},
|
||||
pengiriman_barang : [{
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: 'tb_pengiriman_barang'
|
||||
}]
|
||||
});
|
||||
|
||||
const kurirSchema = new mongoose.Schema({
|
||||
@ -103,6 +107,10 @@ const kurirSchema = new mongoose.Schema({
|
||||
pengaturan_pengiriman: [{
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: 'tb_pengaturan_pengiriman'
|
||||
}],
|
||||
pengiriman_barang: [{
|
||||
type: mongoose.Schema.Types.ObjectId,
|
||||
ref: 'tb_pengiriman_barang'
|
||||
}]
|
||||
});
|
||||
|
||||
|
||||
@ -6,6 +6,8 @@ const { pengirimModel, kurirModel, loginUserModel } = require('../models/users_m
|
||||
|
||||
const { pengaturanPengirimanModel } = require('../models/kurir_model');
|
||||
|
||||
const {pengirimanBarangModel} = require('../models/pengirim_model');
|
||||
|
||||
|
||||
let googlenya = require('../google/googleapi.js');
|
||||
const pengirim_folder_id = process.env.PENGIRIM_FOLDER_ID;
|
||||
@ -13,6 +15,7 @@ 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;
|
||||
const foto_barangan_pengiriman_folder_id = process.env.FOTO_BARANG_PENGIRIMAN_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' });
|
||||
@ -42,7 +45,7 @@ router.get('/kurir', async (req, res) => {
|
||||
try {
|
||||
const data = await kurirModel.find({
|
||||
status: 'Aktif'
|
||||
}).select('-email -created_at -updated_at -__v -ktp_url -_id -alamat').populate(
|
||||
}).select('-email -created_at -updated_at -__v -ktp_url -alamat').populate(
|
||||
{
|
||||
path: 'pengaturan_pengiriman',
|
||||
}
|
||||
@ -62,7 +65,7 @@ router.get('/kurir/nama', cek_user_pengirim, async (req, res) => {
|
||||
$regex: nama,
|
||||
$options: 'i'
|
||||
}
|
||||
}).select('-email -created_at -updated_at -__v -ktp_url -_id -alamat').populate(
|
||||
}).select('-email -created_at -updated_at -__v -ktp_url -alamat').populate(
|
||||
{
|
||||
path: 'pengaturan_pengiriman',
|
||||
|
||||
@ -102,7 +105,7 @@ router.get('/kurir/filter/', cek_user_pengirim, async (req, res) => {
|
||||
} : {}
|
||||
).populate({
|
||||
path: 'kurir',
|
||||
select: '-email -created_at -updated_at -__v -ktp_url -_id -alamat',
|
||||
select: '-email -created_at -updated_at -__v -ktp_url -alamat',
|
||||
match: {
|
||||
nama: {
|
||||
$regex: nama,
|
||||
@ -116,4 +119,79 @@ router.get('/kurir/filter/', cek_user_pengirim, async (req, res) => {
|
||||
|
||||
})
|
||||
|
||||
// create '/pengiriman_barang' post route
|
||||
router.post('/pengiriman_barang', async (req, res) => {
|
||||
const id = req.query.id;
|
||||
const id_kurir = req.body.id_kurir;
|
||||
const nama_penerima = req.body.nama_penerima;
|
||||
const no_telpon_penerima = req.body.no_telpon_penerima;
|
||||
const alamat_penerima = req.body.alamat_penerima;
|
||||
const lat_lokasi_pengiriman = req.body.lat_lokasi_pengiriman;
|
||||
const long_lokasi_pengiriman = req.body.long_lokasi_pengiriman;
|
||||
const kelurahan_desa = req.body.kelurahan_desa;
|
||||
const foto_pengiriman = req.files.foto_pengiriman;
|
||||
|
||||
|
||||
const data = await pengirimanBarangModel.create({
|
||||
nama_penerima: nama_penerima,
|
||||
no_telpon_penerima: no_telpon_penerima,
|
||||
alamat_penerima : alamat_penerima,
|
||||
kordinat_pengiriman: {
|
||||
lat: lat_lokasi_pengiriman,
|
||||
lng: long_lokasi_pengiriman
|
||||
},
|
||||
kelurahan_desa: kelurahan_desa,
|
||||
// foto_pengiriman: "ini url foto",
|
||||
kurir : id_kurir,
|
||||
pengirim : id,
|
||||
});
|
||||
// console.log(data._id , "ini data pengiriman barang")
|
||||
|
||||
await pengirimModel.findByIdAndUpdate(id, {
|
||||
$push: {
|
||||
pengiriman_barang: data._id
|
||||
}
|
||||
})
|
||||
|
||||
await kurirModel.findByIdAndUpdate(id_kurir, {
|
||||
$push: {
|
||||
pengiriman_barang: data._id
|
||||
}
|
||||
})
|
||||
res.status(200).send({ message: 'connected to pengiriman_barang' })
|
||||
|
||||
let id_photo = googlenya.uploadFile(data._id+".jpg", foto_pengiriman.path,foto_barangan_pengiriman_folder_id,"ini photo barang kiriman");
|
||||
|
||||
const photo_url = `https://drive.google.com/uc?export=view&id=${await id_photo}`
|
||||
|
||||
await pengirimanBarangModel.findByIdAndUpdate(data._id, {
|
||||
foto_pengiriman: photo_url
|
||||
})
|
||||
|
||||
|
||||
// const idnya= "62940077b44339ec97fe519e"
|
||||
// const id_pengirim = '6260ba6b7b7d7a951d03d285'
|
||||
// const id_kurir = '629110cc793e75c08f7e2168'
|
||||
|
||||
// // delete from pengirimModel in pengiriman_barang where idnya , where id = id_pengirim
|
||||
// await pengirimModel.findByIdAndUpdate(id_pengirim, {
|
||||
// $pull: {
|
||||
// pengiriman_barang: idnya
|
||||
// }
|
||||
// })
|
||||
|
||||
// // delete from kurirModel in pengiriman_barang where idnya , where id = id_kurir
|
||||
// await kurirModel.findByIdAndUpdate(id_kurir, {
|
||||
// $pull: {
|
||||
// pengiriman_barang: idnya
|
||||
// }
|
||||
// })
|
||||
|
||||
|
||||
|
||||
// console.log(id , id_kurir, nama_penerima, no_telpon_penerima, alamat_penerima, lat_lokasi_pengiriman, long_lokasi_pengiriman, kelurahan_desa, foto_pengiriman , "ini data yang dikirim");
|
||||
|
||||
|
||||
})
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user