changes in kurir and pengaturanbiayakurir schema for ref and kurir search api
This commit is contained in:
@ -1,10 +1,6 @@
|
|||||||
const mongoose = require('mongoose');
|
const mongoose = require('mongoose');
|
||||||
|
|
||||||
const pengaturanPengirimanSchema = new mongoose.Schema({
|
const pengaturanPengirimanSchema = new mongoose.Schema({
|
||||||
id_kurir: {
|
|
||||||
type: mongoose.Schema.Types.ObjectId,
|
|
||||||
required: true,
|
|
||||||
},
|
|
||||||
biaya_minimal: {
|
biaya_minimal: {
|
||||||
type: Number,
|
type: Number,
|
||||||
required: true,
|
required: true,
|
||||||
@ -24,7 +20,11 @@ const pengaturanPengirimanSchema = new mongoose.Schema({
|
|||||||
updated_at: {
|
updated_at: {
|
||||||
type: Date,
|
type: Date,
|
||||||
default: Date.now
|
default: Date.now
|
||||||
}
|
},
|
||||||
|
kurir:[{
|
||||||
|
type: mongoose.Schema.Types.ObjectId,
|
||||||
|
ref: 'tb_kurir'
|
||||||
|
}]
|
||||||
})
|
})
|
||||||
|
|
||||||
const pengaturanPengirimanModel = mongoose.model('tb_pengaturan_pengiriman', pengaturanPengirimanSchema , 'tb_pengaturan_pengiriman');
|
const pengaturanPengirimanModel = mongoose.model('tb_pengaturan_pengiriman', pengaturanPengirimanSchema , 'tb_pengaturan_pengiriman');
|
||||||
|
|||||||
@ -100,6 +100,10 @@ const kurirSchema = new mongoose.Schema({
|
|||||||
type: Date,
|
type: Date,
|
||||||
default: Date.now
|
default: Date.now
|
||||||
},
|
},
|
||||||
|
pengaturan_pengiriman: [{
|
||||||
|
type: mongoose.Schema.Types.ObjectId,
|
||||||
|
ref: 'tb_pengaturan_pengiriman'
|
||||||
|
}]
|
||||||
});
|
});
|
||||||
|
|
||||||
const loginUserSchema = new mongoose.Schema({
|
const loginUserSchema = new mongoose.Schema({
|
||||||
|
|||||||
@ -29,29 +29,35 @@ async function cek_user_kurir(req, res, next) {
|
|||||||
|
|
||||||
// create '/pengaturan' post route
|
// create '/pengaturan' post route
|
||||||
router.post('/pengaturan', cek_user_kurir, async (req, res) => {
|
router.post('/pengaturan', cek_user_kurir, async (req, res) => {
|
||||||
// console.log('masuk post pengaturan');
|
console.log('masuk post pengaturan');
|
||||||
const minimal_biaya_pengiriman = req.body.minimal_biaya_pengiriman;
|
const minimal_biaya_pengiriman = req.body.minimal_biaya_pengiriman;
|
||||||
const maksimal_biaya_pengiriman = req.body.maksimal_biaya_pengiriman;
|
const maksimal_biaya_pengiriman = req.body.maksimal_biaya_pengiriman;
|
||||||
const biaya_per_kilo = req.body.biaya_per_kilo;
|
const biaya_per_kilo = req.body.biaya_per_kilo;
|
||||||
|
|
||||||
const cek_data = await pengaturanPengirimanModel.findOne({
|
const cek_data = await pengaturanPengirimanModel.findOne({
|
||||||
id_kurir: req.query.id
|
kurir: req.query.id
|
||||||
});
|
});
|
||||||
let message, datanya;
|
let message, datanya;
|
||||||
if (cek_data) {
|
if (cek_data) {
|
||||||
datanya = await pengaturanPengirimanModel.findOneAndUpdate({
|
datanya = await pengaturanPengirimanModel.findOneAndUpdate({
|
||||||
id_kurir: req.query.id,
|
kurir: req.query.id,
|
||||||
}, {
|
}, {
|
||||||
biaya_minimal: minimal_biaya_pengiriman,
|
biaya_minimal: minimal_biaya_pengiriman,
|
||||||
biaya_maksimal: maksimal_biaya_pengiriman,
|
biaya_maksimal: maksimal_biaya_pengiriman,
|
||||||
biaya_per_kilo: biaya_per_kilo,
|
biaya_per_kilo: biaya_per_kilo,
|
||||||
updated_at: new Date()
|
updated_at: new Date()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
await kurirModel.findOneAndUpdate({
|
||||||
|
_id: req.query.id
|
||||||
|
},{
|
||||||
|
pengaturan_pengiriman: datanya._id
|
||||||
|
})
|
||||||
message = 'Pengaturan pengiriman berhasil diubah';
|
message = 'Pengaturan pengiriman berhasil diubah';
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
datanya = new pengaturanPengirimanModel({
|
datanya = new pengaturanPengirimanModel({
|
||||||
id_kurir: req.query.id,
|
kurir : req.query.id,
|
||||||
biaya_minimal: minimal_biaya_pengiriman,
|
biaya_minimal: minimal_biaya_pengiriman,
|
||||||
biaya_maksimal: maksimal_biaya_pengiriman,
|
biaya_maksimal: maksimal_biaya_pengiriman,
|
||||||
biaya_per_kilo,
|
biaya_per_kilo,
|
||||||
@ -59,6 +65,14 @@ router.post('/pengaturan', cek_user_kurir, async (req, res) => {
|
|||||||
updated_at: new Date()
|
updated_at: new Date()
|
||||||
});
|
});
|
||||||
await datanya.save();
|
await datanya.save();
|
||||||
|
await kurirModel.findOneAndUpdate({
|
||||||
|
_id: req.query.id
|
||||||
|
},{
|
||||||
|
pengaturan_pengiriman: datanya._id
|
||||||
|
})
|
||||||
|
|
||||||
|
// save to pengaturanPengirimanModel reference to kurirModel
|
||||||
|
|
||||||
message = 'Pengaturan biaya pengiriman berhasil dibuat';
|
message = 'Pengaturan biaya pengiriman berhasil dibuat';
|
||||||
console.log("data baru");
|
console.log("data baru");
|
||||||
}
|
}
|
||||||
@ -68,9 +82,10 @@ router.post('/pengaturan', cek_user_kurir, async (req, res) => {
|
|||||||
|
|
||||||
// create '/pengaturan' get route
|
// create '/pengaturan' get route
|
||||||
router.get('/pengaturan', cek_user_kurir, async (req, res) => {
|
router.get('/pengaturan', cek_user_kurir, async (req, res) => {
|
||||||
// console.log('masuk get pengaturan');
|
// router.get('/pengaturan', async (req, res) => {
|
||||||
|
console.log('masuk get pengaturan');
|
||||||
const cek_data = await pengaturanPengirimanModel.findOne({
|
const cek_data = await pengaturanPengirimanModel.findOne({
|
||||||
id_kurir: req.query.id
|
kurir: req.query.id
|
||||||
});
|
});
|
||||||
if (!cek_data) return res.status(200).send({ message: 'Pengaturan tidak ditemukan' , data: null});
|
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 });
|
res.status(200).send({ message: 'Pengaturan pengiriman berhasil ditemukan', data: cek_data });
|
||||||
|
|||||||
@ -144,9 +144,19 @@ router.post('/daftar1', async (req, res) => {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
res.send({ status: true, message: 'Anda akan mendapat notifikasi di email anda dan juga no telpon jika admin menyetujui ataupun membatalkan pendaftaran anda' });
|
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_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
|
// 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");
|
let id_photo = googlenya.uploadFile(new_kurir._id + ".jpg", req.files.photo.path, kurir_folder_id, "ini photo kurir");
|
||||||
|
|
||||||
@ -163,22 +173,32 @@ router.post('/daftar1', async (req, res) => {
|
|||||||
// add kenderaan_url to kurir
|
// add kenderaan_url to kurir
|
||||||
let id_kenderaan = googlenya.uploadFile("kenderaan_" + new_kurir._id + ".jpg", req.files.kenderaan_photo.path, kenderaan_kurir_folder_id, "ini kenderaan kurir");
|
let id_kenderaan = googlenya.uploadFile("kenderaan_" + new_kurir._id + ".jpg", req.files.kenderaan_photo.path, kenderaan_kurir_folder_id, "ini kenderaan kurir");
|
||||||
|
|
||||||
new_kurir.photo_url = `https://drive.google.com/uc?export=view&id=${await id_photo}`
|
const photo_url = `https://drive.google.com/uc?export=view&id=${await id_photo}`
|
||||||
new_kurir.ktp_url = `https://drive.google.com/uc?export=view&id=${await id_ktp}`
|
const ktp_url = `https://drive.google.com/uc?export=view&id=${await id_ktp}`
|
||||||
new_kurir.ktp_holding_url = `https://drive.google.com/uc?export=view&id=${await id_ktp_holding}`
|
const ktp_holding_url = `https://drive.google.com/uc?export=view&id=${await id_ktp_holding}`
|
||||||
new_kurir.kenderaan_url = `https://drive.google.com/uc?export=view&id=${await id_kenderaan}`
|
const kenderaan_url = `https://drive.google.com/uc?export=view&id=${await id_kenderaan}`
|
||||||
|
|
||||||
console.log(new_kurir)
|
|
||||||
|
// await kurirModel.findOneAndUpdate({ _id: new_kurir._id }, {
|
||||||
|
// status: 'Aktif',
|
||||||
|
// photo_url: photo_url,
|
||||||
|
// })
|
||||||
|
|
||||||
|
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 });
|
||||||
|
|
||||||
|
// const data = await kurirModel.findOne({ _id: new_kurir._id });
|
||||||
|
|
||||||
|
// console.log(data)
|
||||||
|
|
||||||
|
|
||||||
let new_login = new loginUserModel(data);
|
// let new_login = new loginUserModel(data);
|
||||||
|
|
||||||
// push new_kurir._id to new_login._idnya
|
// // push new_kurir._id to new_login._idnya
|
||||||
new_login._idnya = new_kurir._id;
|
// new_login._idnya = new_kurir._id;
|
||||||
console.log(new_login);
|
// console.log(new_login);
|
||||||
|
|
||||||
await new_kurir.save();
|
// await new_kurir.save();
|
||||||
await new_login.save();
|
// await new_login.save();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,9 @@ const express = require('express');
|
|||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
|
|
||||||
const {pengirimModel, kurirModel, loginUserModel} = require('../models/users_model');
|
const { pengirimModel, kurirModel, loginUserModel } = require('../models/users_model');
|
||||||
|
|
||||||
|
const { pengaturanPengirimanModel } = require('../models/kurir_model');
|
||||||
|
|
||||||
|
|
||||||
let googlenya = require('../google/googleapi.js');
|
let googlenya = require('../google/googleapi.js');
|
||||||
@ -35,15 +37,83 @@ router.get('/', cek_user_pengirim, async (req, res) => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// create '/pengirim' get route
|
// create '/pengirim' get route
|
||||||
router.get('/kurir', cek_user_pengirim, async (req, res) => {
|
// router.get('/kurir', cek_user_pengirim, async (req, res) => {
|
||||||
|
router.get('/kurir', async (req, res) => {
|
||||||
try {
|
try {
|
||||||
const data = await kurirModel.find({
|
const data = await kurirModel.find({
|
||||||
status: 'Aaaktif'
|
status: 'Aktif'
|
||||||
}).select('-email -created_at -updated_at -__v -ktp_url -kenderaan_url -photo_url -_id -alamat');
|
}).select('-email -created_at -updated_at -__v -ktp_url -_id -alamat').populate(
|
||||||
res.status(200).send({data : data});
|
{
|
||||||
|
path: 'pengaturan_pengiriman',
|
||||||
|
}
|
||||||
|
).exec();
|
||||||
|
res.status(200).send({ data: data });
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
res.status(500).send({ message: 'Internal Server Error' });
|
res.status(500).send({ message: 'Internal Server Error' });
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// create '/pengirim/:nama' get route
|
||||||
|
router.get('/kurir/nama', cek_user_pengirim, async (req, res) => {
|
||||||
|
try {
|
||||||
|
const nama = (req.query.nama != null && req.query.nama != '') ? req.query.nama.toString() : '';
|
||||||
|
const data = await kurirModel.find({
|
||||||
|
nama: {
|
||||||
|
$regex: nama,
|
||||||
|
$options: 'i'
|
||||||
|
}
|
||||||
|
}).select('-email -created_at -updated_at -__v -ktp_url -_id -alamat').populate(
|
||||||
|
{
|
||||||
|
path: 'pengaturan_pengiriman',
|
||||||
|
|
||||||
|
}
|
||||||
|
)
|
||||||
|
res.status(200).send({ data: data });
|
||||||
|
} catch (error) {
|
||||||
|
res.status(500).send({ message: 'Internal Server Error' });
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
// create '/pengirim/filter/' get route
|
||||||
|
router.get('/kurir/filter/', cek_user_pengirim, async (req, res) => {
|
||||||
|
|
||||||
|
const nama = (req.query.nama != null && req.query.nama != '') ? req.query.nama.toString() : '';
|
||||||
|
const biaya_maksimal = (req.query.biaya_maksimal != null && req.query.biaya_maksimal != '') ? parseInt(req.query.biaya_maksimal.toString()) : '';
|
||||||
|
const biaya_per_kilo = (req.query.biaya_per_km != null && req.query.biaya_per_km != '') ? parseInt(req.query.biaya_per_km.toString()) : '';
|
||||||
|
|
||||||
|
const data = await pengaturanPengirimanModel.find(
|
||||||
|
(biaya_per_kilo != '' && biaya_maksimal != '') ? {
|
||||||
|
biaya_per_kilo: {
|
||||||
|
$lte: biaya_per_kilo
|
||||||
|
},
|
||||||
|
biaya_maksimal: {
|
||||||
|
$lte: biaya_maksimal
|
||||||
|
}
|
||||||
|
} :
|
||||||
|
(biaya_per_kilo != '' && biaya_maksimal == '') ? {
|
||||||
|
biaya_per_kilo: {
|
||||||
|
$lte: biaya_per_kilo
|
||||||
|
}
|
||||||
|
} :
|
||||||
|
(biaya_per_kilo == '' && biaya_maksimal != '') ? {
|
||||||
|
biaya_maksimal: {
|
||||||
|
$lte: biaya_maksimal
|
||||||
|
}
|
||||||
|
} : {}
|
||||||
|
).populate({
|
||||||
|
path: 'kurir',
|
||||||
|
select: '-email -created_at -updated_at -__v -ktp_url -_id -alamat',
|
||||||
|
match: {
|
||||||
|
nama: {
|
||||||
|
$regex: nama,
|
||||||
|
$options: 'i'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}).exec();
|
||||||
|
console.log(data)
|
||||||
|
|
||||||
|
res.status(200).send({ data: data });
|
||||||
|
|
||||||
|
})
|
||||||
|
|
||||||
module.exports = router;
|
module.exports = router;
|
||||||
Reference in New Issue
Block a user