in src/amo/sagas/reviews.js [315:381]
newReview: createInternalReview(
reviewFromResponse,
state.reviews.lang,
),
}),
);
}
// Make the message disappear after some time.
yield _delay(FLASH_SAVED_MESSAGE_DURATION);
yield put(hideFlashedReviewMessage());
} catch (error) {
log.warn(
`Failed to create/update review with action ${action.type}: ${error}`,
);
yield put(errorHandler.createErrorAction(error));
yield put(flashReviewMessage(ABORTED));
}
}
function* deleteAddonReview({
payload: { addonId, errorHandlerId, isReplyToReviewId, reviewId },
}: DeleteAddonReviewAction): Saga {
const errorHandler = createErrorHandler(errorHandlerId);
yield put(errorHandler.createClearingAction());
try {
const state = yield select(getState);
yield call(deleteReview, {
apiState: state.api,
reviewId,
});
yield put(unloadAddonReviews({ addonId, reviewId }));
if (isReplyToReviewId) {
yield put(unloadAddonReviews({ addonId, reviewId: isReplyToReviewId }));
}
} catch (error) {
log.warn(`Failed to delete review ID ${reviewId}: ${error}`);
yield put(errorHandler.createErrorAction(error));
}
}
function* fetchLatestUserReview({
payload: { addonId, errorHandlerId, userId },
}: FetchLatestUserReviewAction): Saga {
const errorHandler = createErrorHandler(errorHandlerId);
yield put(errorHandler.createClearingAction());
try {
const state: AppState = yield select(getState);
const params: GetLatestUserReviewParams = {
addon: addonId,
apiState: state.api,
user: userId,
};
const review: GetLatestUserReviewResponse = yield call(
getLatestUserReview,
params,
);
const _setLatestReview = (value) => {
return setLatestReview({