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

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

@ -160,7 +160,11 @@ requestRoutes.post(
// (Unless there are no seasons, in which case we abort)
if (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) => {
const combinedSeasons = request.seasons.map(
(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
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) => {
const combinedSeasons = r.seasons.map(
(season) => season.seasonNumber

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

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

Loading…
Cancel
Save