1
0
mirror of https://github.com/ascribe/onion.git synced 2024-11-15 17:45:10 +01:00
onion/js/components/whitelabel/prize/actions/prize_rating_actions.js

79 lines
2.1 KiB
JavaScript
Raw Normal View History

2015-08-10 17:02:10 +02:00
'use strict';
import { alt } from '../../../../alt';
2015-08-10 17:02:10 +02:00
import Q from 'q';
import PrizeRatingFetcher from '../fetchers/prize_rating_fetcher';
class PrizeRatingActions {
constructor() {
this.generateActions(
'updatePrizeRatings',
2015-08-24 15:33:36 +02:00
'updatePrizeRatingAverage',
2015-08-10 17:02:10 +02:00
'updatePrizeRating'
);
}
2015-08-24 15:33:36 +02:00
fetchAverage(pieceId) {
2015-08-10 17:02:10 +02:00
return Q.Promise((resolve, reject) => {
PrizeRatingFetcher
2015-08-24 15:33:36 +02:00
.fetchAverage(pieceId)
2015-08-10 17:02:10 +02:00
.then((res) => {
2015-08-24 15:33:36 +02:00
this.actions.updatePrizeRatingAverage(res.data);
2015-08-10 17:02:10 +02:00
resolve(res);
})
.catch((err) => {
console.logGlobal(err);
reject(err);
});
});
}
fetchOne(pieceId) {
return Q.Promise((resolve, reject) => {
PrizeRatingFetcher
.fetchOne(pieceId)
.then((res) => {
this.actions.updatePrizeRating(res.rating.rating);
resolve(res);
})
.catch((err) => {
reject(err);
});
});
}
createRating(pieceId, rating) {
return Q.Promise((resolve, reject) => {
PrizeRatingFetcher
.rate(pieceId, rating)
.then((res) => {
this.actions.updatePrizeRating(res.rating.rating);
resolve(res);
})
.catch((err) => {
reject(err);
});
});
}
toggleShortlist(pieceId) {
return Q.Promise((resolve, reject) => {
PrizeRatingFetcher
.select(pieceId)
.then((res) => {
2015-08-26 14:50:16 +02:00
this.actions.updatePrizeRatings(res.data.ratings);
resolve(res);
})
.catch((err) => {
reject(err);
});
});
}
2015-08-10 17:02:10 +02:00
updateRating(rating) {
this.actions.updatePrizeRating(rating);
}
}
export default alt.createActions(PrizeRatingActions);