310 lines
6.0 KiB
JavaScript
310 lines
6.0 KiB
JavaScript
import {observable, action, computed} from 'mobx';
|
|
|
|
export default class Packages {
|
|
|
|
@observable packagesList = [];
|
|
@observable packagesListByStatus = [];
|
|
@observable getAllPackagesLoading = false;
|
|
@observable temporaryHotels = {
|
|
name: '',
|
|
image: []
|
|
};
|
|
@observable postData = {
|
|
package_reward_id: '',
|
|
name: '',
|
|
transportation: '',
|
|
description: '',
|
|
banner: '',
|
|
destination: {},
|
|
duration: {},
|
|
hotels: {
|
|
hotels: []
|
|
},
|
|
galleries: {
|
|
image: []
|
|
},
|
|
itinerary: {
|
|
data: []
|
|
},
|
|
price: '',
|
|
status: 'enable',
|
|
repeat: '',
|
|
transportation: ''
|
|
};
|
|
@observable postPackagesLoading = false;
|
|
@observable deletePackagesLoading = false;
|
|
@observable packageData = {
|
|
package_reward_id: '',
|
|
name: '',
|
|
transportation: '',
|
|
description: '',
|
|
banner: '',
|
|
destination: {},
|
|
duration: {},
|
|
transport: {
|
|
name: ''
|
|
},
|
|
hotels: {
|
|
hotels: [
|
|
{
|
|
name: '',
|
|
image: [""]
|
|
}
|
|
]
|
|
},
|
|
galleries: {
|
|
image: []
|
|
},
|
|
itinerary: {
|
|
data: []
|
|
},
|
|
price: '',
|
|
status: 'enable',
|
|
repeat: '',
|
|
category_id: ''
|
|
};
|
|
@observable getPackageByIdLoading = false;
|
|
@observable editPackagesLoading = false;
|
|
@observable packageId = '';
|
|
@observable imageGallerySource = [];
|
|
@observable editedPackageData = {
|
|
package_reward_id: '',
|
|
name: '',
|
|
transportation: '',
|
|
description: '',
|
|
banner: '',
|
|
destination: {},
|
|
duration: {},
|
|
hotels: {
|
|
hotels: [
|
|
{
|
|
name: '',
|
|
image: [""]
|
|
}
|
|
]
|
|
},
|
|
galleries: {
|
|
image: []
|
|
},
|
|
transport: {
|
|
name: ''
|
|
},
|
|
itinerary: {
|
|
data: []
|
|
},
|
|
price: '',
|
|
status: 'enable',
|
|
repeat: '',
|
|
category_id: ''
|
|
};
|
|
@observable packageReward = "";
|
|
@observable paymentMethod = "";
|
|
@observable rewardType = "";
|
|
@observable queries = {
|
|
departure_date: "",
|
|
currency: "",
|
|
destination: "",
|
|
price_from: "",
|
|
price_to: "",
|
|
pax: ""
|
|
};
|
|
|
|
constructor(context) {
|
|
this.http = context.http;
|
|
this.context = context;
|
|
}
|
|
|
|
@action
|
|
setDepartureDate(data) {
|
|
this.queries.departure_date = data;
|
|
}
|
|
|
|
@action
|
|
setCurrency(data) {
|
|
this.queries.currency = data;
|
|
}
|
|
|
|
@action
|
|
setDestination(data) {
|
|
this.queries.destination = data;
|
|
}
|
|
|
|
@action
|
|
setPriceFrom(data) {
|
|
this.queries.price_from = data;
|
|
}
|
|
|
|
@action
|
|
setPriceTo(data) {
|
|
this.queries.price_to = data;
|
|
}
|
|
|
|
@action
|
|
setPax(data) {
|
|
this.queries.pax = data;
|
|
}
|
|
|
|
@action
|
|
getAllPackages() {
|
|
this.getAllPackagesLoading = true;
|
|
return this.http.get(`packages`).then(res => {
|
|
this.packagesList = res;
|
|
this.getAllPackagesLoading = false;
|
|
});
|
|
|
|
console.log(this.packagesList)
|
|
}
|
|
|
|
@action
|
|
getAllPackagesByQueries() {
|
|
let builder = "";
|
|
this.getAllPackagesLoading = true;
|
|
if (this.queries.departure_date) {
|
|
builder = "departure_date=" + this.queries.departure_date
|
|
}
|
|
return this.http.get(`packages?` + builder).then(res => {
|
|
this.packagesListByStatus = res;
|
|
this.getAllPackagesLoading = false;
|
|
});
|
|
|
|
console.log(this.packagesList)
|
|
}
|
|
|
|
@action
|
|
getAllPackagesbyStatus() {
|
|
this.getAllPackagesLoading = true;
|
|
return this.http.get(`packages?status=enable`).then(res => {
|
|
this.packagesListByStatus = res;
|
|
this.getAllPackagesLoading = false;
|
|
});
|
|
|
|
console.log(this.packagesList)
|
|
}
|
|
|
|
@action
|
|
getPackageById(id) {
|
|
this.getPackageByIdLoading = true;
|
|
return this.http.get(`packages/${id}`).then(res => {
|
|
this.packageData = res[0];
|
|
this.packageId = id;
|
|
this.getPackageByIdLoading = false;
|
|
})
|
|
}
|
|
|
|
@computed
|
|
get isPackageEmpty() {
|
|
if (this.packagesList.length > 0) {
|
|
return false;
|
|
}
|
|
return true;
|
|
|
|
}
|
|
|
|
@computed
|
|
get isPackageEmptybyStatus() {
|
|
if (this.packagesListByStatus.length > 0) {
|
|
return false;
|
|
}
|
|
return true;
|
|
|
|
}
|
|
|
|
@computed
|
|
get isIteneraryEmpty() {
|
|
if (this.postData.itinerary.data.length > 0) {
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
@computed
|
|
get isHotelEmpty() {
|
|
if (this.postData.hotels.hotels.length > 0) {
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
@computed
|
|
get isHotelsEmpty() {
|
|
if (this.packageData.hotels.hotels.length > 0) {
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
@action
|
|
onUpdateGallery(data) {
|
|
this.postData.galleries.image.push(data);
|
|
// console.log(data)
|
|
}
|
|
|
|
@action
|
|
onUpdateHotels(data) {
|
|
this.temporaryHotels.image.push(data);
|
|
// console.log(data)
|
|
}
|
|
|
|
@action
|
|
addHotels(data){
|
|
// if (typeof this.postData.hotels.hotels !== 'function') {
|
|
// this.postData.hotels.hotels = [];
|
|
// }
|
|
this.postData.hotels.hotels.push(data);
|
|
}
|
|
|
|
@computed
|
|
get isGalleryEmpty() {
|
|
if (this.postData.galleries.image.length > 0) {
|
|
return false;
|
|
} else {
|
|
return true;
|
|
}
|
|
}
|
|
|
|
@action
|
|
postPackages() {
|
|
this.postPackagesLoading = true;
|
|
return this.http.post(`packages`, this.postData).then(res => {
|
|
this.postPackagesLoading = false;
|
|
return res;
|
|
});
|
|
}
|
|
|
|
@action
|
|
deletePackages(id) {
|
|
this.deletePackagesLoading = true;
|
|
return this.http.delete(`packages/${id}`).then(res => {
|
|
this.getAllPackages();
|
|
this.deletePackagesLoading = false;
|
|
return res;
|
|
});
|
|
}
|
|
|
|
@action
|
|
editPackages() {
|
|
this.editPackagesLoading = true;
|
|
return this.http.put(`packages/${this.packageId}`, this.editedPackageData).then(res => {
|
|
this.getAllPackages();
|
|
this.editPackagesLoading = false;
|
|
// this.packageData = {};
|
|
return res;
|
|
});
|
|
}
|
|
|
|
@action
|
|
editPackagesDetail() {
|
|
this.editPackagesLoading = true;
|
|
return this.http.put(`packages/${this.packageId}`, this.editedPackageData).then(res => {
|
|
this.getPackageById(this.packageId);
|
|
this.editPackagesLoading = false;
|
|
// this.packageData = {};
|
|
return res;
|
|
});
|
|
}
|
|
|
|
}
|