added pengiriman_detail api

This commit is contained in:
kicap1992
2022-06-28 01:40:03 +08:00
parent 0f8229d8ec
commit 6c221bad0a
3 changed files with 127 additions and 9 deletions

View File

@ -44,7 +44,7 @@ const pengirimanBarangSchema = new mongoose.Schema({
type: String, type: String,
default: 'Dalam Pengesahan Kurir', default: 'Dalam Pengesahan Kurir',
}, },
biaya : { biaya: {
biaya_minimal: { biaya_minimal: {
type: Number, type: Number,
required: true, required: true,
@ -66,6 +66,17 @@ const pengirimanBarangSchema = new mongoose.Schema({
type: mongoose.Schema.Types.ObjectId, type: mongoose.Schema.Types.ObjectId,
ref: 'tb_pengirim' ref: 'tb_pengirim'
}, },
history: [new mongoose.Schema({
waktu: {
type: Date,
default: Date.now,
},
status_pengiriman: {
type: String,
}
}, {
_id: false,
})],
created_at: { created_at: {
type: Date, type: Date,
default: Date.now default: Date.now

View File

@ -3,7 +3,7 @@ const router = express.Router();
const md5 = require('md5'); const md5 = require('md5');
const { pengaturanPengirimanModel } = require('../models/kurir_model'); const { pengaturanPengirimanModel } = require('../models/kurir_model');
const { kurirModel, loginUserModel , pengirimModel} = require('../models/users_model'); const { kurirModel, loginUserModel, pengirimModel } = require('../models/users_model');
const { pengirimanBarangModel } = require('../models/pengirim_model'); const { pengirimanBarangModel } = require('../models/pengirim_model');
let googlenya = require('../google/googleapi.js'); let googlenya = require('../google/googleapi.js');
@ -93,17 +93,22 @@ router.get('/pengaturan', cek_user_kurir, async (req, res) => {
}) })
// create '/pengiriman_kurir_dalam_pengesahan' get route // create '/pengiriman_kurir_dalam_pengesahan' get route
router.get('/pengiriman_kurir_dalam_pengesahan', async (req, res) => { router.get('/pengiriman_kurir_dalam_pengesahan', cek_user_kurir, async (req, res) => {
try { try {
console.log('masuk get pengiriman_kurir_dalam_pengesahan'); console.log('masuk get pengiriman_kurir_dalam_pengesahan');
const cek_data = await pengirimanBarangModel.find({ const cek_data = await pengirimanBarangModel.find({
kurir: req.query.id, kurir: req.query.id,
status: 'Dalam Pengesahan Kurir' // status = 'Dalam Pengesahan Kurir' or 'Disahkan Kurir'
}).select(' -kurir -__v ').populate({ $or: [
path: 'pengirim', { status_pengiriman: 'Dalam Pengesahan Kurir' },
select: '-__v -created_at -updated_at -status' { status_pengiriman: 'Disahkan Kurir' },
{ status_pengiriman: 'Mengambil Paket Pengiriman Dari Pengirim' }
]
}).select(' -kurir -__v ').sort({ status_pengiriman: -1 }).populate({
path: 'pengirim',
select: '-__v -created_at -updated_at -status'
}); });
res.status(200).send({ message: 'Data berhasil ditemukan', data: cek_data }); res.status(200).send({ message: 'Data berhasil ditemukan', data: cek_data });
} catch (error) { } catch (error) {
res.status(500).send({ message: 'Internal Server Error', data: null }); res.status(500).send({ message: 'Internal Server Error', data: null });
@ -112,13 +117,112 @@ router.get('/pengiriman_kurir_dalam_pengesahan', async (req, res) => {
}) })
// create 'sahkan_pengiriman' post route
router.post('/sahkan_pengiriman', 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: 'Disahkan Kurir',
// push to history
$push: {
history: {
status_pengiriman: 'Disahkan Kurir',
}
},
updated_at: new Date()
}
, { new: true }
);
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 });
}
})
// create '/pengirim' get route // create '/pengirim' get route
router.get('/pengirim', async (req, res) => { router.get('/pengirim', cek_user_kurir, async (req, res) => {
console.log('masuk get pengirim'); console.log('masuk get pengirim');
// get all pengirim // get all pengirim
const cek_data = await pengirimModel.find().select('-__v -created_at -updated_at'); const cek_data = await pengirimModel.find().select('-__v -created_at -updated_at');
res.status(200).send({ message: 'Data berhasil ditemukan', data: cek_data }); res.status(200).send({ message: 'Data berhasil ditemukan', data: cek_data });
}) })
// create '/detail_pengiriman' get route
router.get('/detail_pengiriman', cek_user_kurir, async (req, res) => {
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
}).select(' -kurir -__v -pengirim').populate({
path: 'pengirim',
select: '-__v -created_at -updated_at -status'
});
if (!cek_data) return res.status(400).send({ message: 'Data tidak ditemukan', data: null });
res.status(200).send({ message: 'Data berhasil ditemukan', data: cek_data });
} catch (error) {
res.status(500).send({ message: 'Internal Server Error', data: null });
}
})
// create 'mengambil_paket_pengiriman' post route
router.post('/mengambil_paket_pengiriman', 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: 'Mengambil Paket Pengiriman Dari Pengirim',
// push to history
$push: {
history: {
status_pengiriman: 'Mengambil Paket Pengiriman Dari Pengirim',
}
},
updated_at: new Date()
}
, { new: true }
);
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 });
}
})
module.exports = router; module.exports = router;

View File

@ -157,6 +157,9 @@ router.post('/pengiriman_barang', cek_user_pengirim, async (req, res) => {
biaya: biaya, biaya: biaya,
kurir: id_kurir, kurir: id_kurir,
pengirim: id, pengirim: id,
history:{
status_pengiriman : "Dalam Pengesahan Kurir"
}
}); });
console.log(data_created._id, "ini data pengiriman barang") console.log(data_created._id, "ini data pengiriman barang")