Skip to content

Commit

Permalink
fix(requests): allow declined season requests to be re-requested
Browse files Browse the repository at this point in the history
fixes #690
  • Loading branch information
sct committed Jan 20, 2021
1 parent e80920f commit e1032ff
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 6 deletions.
13 changes: 11 additions & 2 deletions server/routes/request.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
5 changes: 4 additions & 1 deletion server/subscriber/MediaSubscriber.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
Expand Down
13 changes: 10 additions & 3 deletions src/components/RequestModal/TvRequestModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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)
Expand Down

0 comments on commit e1032ff

Please sign in to comment.