fix(requests): allow declined season requests to be re-requested

fixes #690
pull/691/head
sct 4 years ago
parent e80920faa1
commit e1032ff5df

@ -160,7 +160,11 @@ requestRoutes.post(
// (Unless there are no seasons, in which case we abort) // (Unless there are no seasons, in which case we abort)
if (media.requests) { if (media.requests) {
existingSeasons = media.requests existingSeasons = media.requests
.filter((request) => request.is4k === req.body.is4k) .filter(
(request) =>
request.is4k === req.body.is4k &&
request.status !== MediaRequestStatus.DECLINED
)
.reduce((seasons, request) => { .reduce((seasons, request) => {
const combinedSeasons = request.seasons.map( const combinedSeasons = request.seasons.map(
(season) => season.seasonNumber (season) => season.seasonNumber
@ -303,7 +307,12 @@ requestRoutes.put<{ requestId: string }>(
// Get all requested seasons that are not part of this request we are editing // Get all requested seasons that are not part of this request we are editing
const existingSeasons = media.requests const existingSeasons = media.requests
.filter((r) => r.is4k === request.is4k && r.id !== request.id) .filter(
(r) =>
r.is4k === request.is4k &&
r.id !== request.id &&
r.status !== MediaRequestStatus.DECLINED
)
.reduce((seasons, r) => { .reduce((seasons, r) => {
const combinedSeasons = r.seasons.map( const combinedSeasons = r.seasons.map(
(season) => season.seasonNumber (season) => season.seasonNumber

@ -110,7 +110,10 @@ export class MediaSubscriber implements EntitySubscriberInterface {
}); });
for (const request of requests) { for (const request of requests) {
if (request.is4k === is4k) { if (
request.is4k === is4k &&
request.status === MediaRequestStatus.PENDING
) {
request.status = MediaRequestStatus.APPROVED; request.status = MediaRequestStatus.APPROVED;
await requestRepository.save(request); await requestRepository.save(request);
} }

@ -169,7 +169,11 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
const getAllRequestedSeasons = (): number[] => { const getAllRequestedSeasons = (): number[] => {
const requestedSeasons = (data?.mediaInfo?.requests ?? []) const requestedSeasons = (data?.mediaInfo?.requests ?? [])
.filter((request) => request.is4k === is4k) .filter(
(request) =>
request.is4k === is4k &&
request.status !== MediaRequestStatus.DECLINED
)
.reduce((requestedSeasons, request) => { .reduce((requestedSeasons, request) => {
return [ return [
...requestedSeasons, ...requestedSeasons,
@ -255,8 +259,11 @@ const TvRequestModal: React.FC<RequestModalProps> = ({
if ( if (
data?.mediaInfo && data?.mediaInfo &&
(data.mediaInfo.requests || []).filter((request) => request.is4k === is4k) (data.mediaInfo.requests || []).filter(
.length > 0 (request) =>
request.is4k === is4k &&
request.status !== MediaRequestStatus.DECLINED
).length > 0
) { ) {
data.mediaInfo.requests data.mediaInfo.requests
.filter((request) => request.is4k === is4k) .filter((request) => request.is4k === is4k)

Loading…
Cancel
Save