Skip to content

Commit

Permalink
fix(requests): adding a request would fail due to failed query
Browse files Browse the repository at this point in the history
  • Loading branch information
ADRFranklin committed Mar 30, 2024
1 parent 145b588 commit 1e381f4
Show file tree
Hide file tree
Showing 3 changed files with 110 additions and 97 deletions.
54 changes: 28 additions & 26 deletions pkg/api/src/api/routes/request.ts
Original file line number Diff line number Diff line change
Expand Up @@ -66,29 +66,35 @@ const getRequestMinified = async (ctx: Context) => {
}),
);
} catch (err) {
logger.log('error', `ROUTE: Error getting requests`);
logger.log({ level: 'error', message: err });
logger.error(`ROUTE: Error getting requests`, err);
ctx.status = StatusCodes.INTERNAL_SERVER_ERROR;
ctx.body = {};
return;
}

ctx.status = StatusCodes.OK;
ctx.body = data;
};

const addRequest = async (ctx: Context) => {
const {body} = ctx.request;
const { body } = ctx.request;
const { request } = body;

const {request} = body;
const process = await new ProcessRequest(request, ctx.state.user).new();

ctx.status = StatusCodes.OK;
ctx.body = process;
try {
ctx.status = StatusCodes.OK;
ctx.body = await new ProcessRequest(request, ctx.state.user).new();
} catch (err) {
logger.error(`ROUTE: Error adding request`, err);
ctx.status = StatusCodes.INTERNAL_SERVER_ERROR;
ctx.body = {};
}
};

const removeRequest = async (ctx: Context) => {
const {body} = ctx.request;
const { body } = ctx.request;

const {request} = body;
const {reason} = body;
const { request } = body;
const { reason } = body;
const process = new ProcessRequest(request, ctx.state.user);

await process.archive(false, true, reason);
Expand All @@ -112,14 +118,11 @@ const removeRequest = async (ctx: Context) => {
}),
);
new Mailer().mail(
`Your request was ${request.approved ? 'removed' : 'denied'} for ${
request.title
`Your request was ${request.approved ? 'removed' : 'denied'} for ${request.title
}`,
`Your request was ${request.approved ? 'removed' : 'denied'} for ${
request.title
`Your request was ${request.approved ? 'removed' : 'denied'} for ${request.title
}`,
`Unfortunately your request could not be processed.${
reason ? ` This is because - ${reason}.` : ''
`Unfortunately your request could not be processed.${reason ? ` This is because - ${reason}.` : ''
} Thanks for your request anyway!`,
`https://image.tmdb.org/t/p/w500${request.thumb}`,
emails,
Expand All @@ -131,12 +134,12 @@ const removeRequest = async (ctx: Context) => {
};

const updateRequest = async (ctx: Context) => {
const {body} = ctx.request;
const { body } = ctx.request;

const {request} = body;
const {servers} = body;
const {approved} = body.request;
const {manualStatus} = body.request;
const { request } = body;
const { servers } = body;
const { approved } = body.request;
const { manualStatus } = body.request;

if (manualStatus === '5') {
new ProcessRequest(request, ctx.state.user).archive(true, false, false);
Expand Down Expand Up @@ -207,16 +210,15 @@ const updateRequest = async (ctx: Context) => {
ctx.status = StatusCodes.OK;
ctx.body = {};
} catch (err) {
logger.log('error', `ROUTE: Error updating requests`);
logger.log({ level: 'error', message: err });
logger.error(`ROUTE: Error updating requests`, err);

ctx.status = StatusCodes.INTERNAL_SERVER_ERROR;
ctx.body = {};
}
};

const getArchivedRequestById = async (ctx: Context) => {
const {id} = ctx.params;
const { id } = ctx.params;

ctx.status = StatusCodes.OK;
ctx.body = await getArchive(id);
Expand All @@ -234,4 +236,4 @@ export default (app: Router) => {

app.use(routes.routes());
app.use(routes.allowedMethods());
};
};
82 changes: 41 additions & 41 deletions pkg/api/src/services/requests/display.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export const getRequests = async (user = false, all = false) => {
if (request.type === 'movie' && request.radarrId.length > 0) {
for (let i = 0; i < Object.keys(request.radarrId).length; i++) {
const radarrIds = request.radarrId[i];
const rId = parseInt(radarrIds[Object.keys(radarrIds)[0]]);
const rId = parseInt(radarrIds[Object.keys(radarrIds)[0]], 10);
const serverUuid = Object.keys(radarrIds)[0];

const instance = instances.find((i) => i.id === serverUuid);
Expand Down Expand Up @@ -66,7 +66,7 @@ export const getRequests = async (user = false, all = false) => {
if (request.type === 'tv' && request.sonarrId.length > 0) {
for (let i = 0; i < Object.keys(request.sonarrId).length; i++) {
const sonarrIds = request.sonarrId[i];
const sId = parseInt(sonarrIds[Object.keys(sonarrIds)[0]]);
const sId = parseInt(sonarrIds[Object.keys(sonarrIds)[0]], 10);
const serverUuid = Object.keys(sonarrIds)[0];

const instance = instances.find((i) => i.id === serverUuid);
Expand Down Expand Up @@ -207,30 +207,30 @@ function reqState(req, children) {
step: 4,
};
}
const airDate = element.info.firstAired;
if (!airDate)
return {
status: 'blue',
message: 'Awaiting Info',
step: 3,
};
diff = Math.ceil(
new Date(airDate).getTime() - new Date().getTime(),
);
if (diff > 0) {
return {
status: 'blue',
message: `${calcDate(diff)}`,
step: 3,
};
}
if (element.info.episodeFileCount > 0) {
return {
status: 'blue',
message: 'Partially Downloaded',
step: 3,
};
}
const airDate = element.info.firstAired;
if (!airDate)
return {
status: 'blue',
message: 'Awaiting Info',
step: 3,
};
diff = Math.ceil(
new Date(airDate).getTime() - new Date().getTime(),
);
if (diff > 0) {
return {
status: 'blue',
message: `${calcDate(diff)}`,
step: 3,
};
}
if (element.info.episodeFileCount > 0) {
return {
status: 'blue',
message: 'Partially Downloaded',
step: 3,
};
}


}
Expand All @@ -241,7 +241,7 @@ function reqState(req, children) {
if (element.info.inCinemas) {
diff = Math.ceil(
new Date(element.info.inCinemas).getTime() -
new Date().getTime(),
new Date().getTime(),
);
if (diff > 0) {
return {
Expand All @@ -261,18 +261,18 @@ function reqState(req, children) {
};
}
} else if (element.info.inCinemas) {
diff = Math.ceil(
new Date().getTime() -
new Date(element.info.inCinemas).getTime(),
);
if (cinemaWindow(diff)) {
return {
status: 'cinema',
message: 'In Cinemas',
step: 3,
};
}
diff = Math.ceil(
new Date().getTime() -
new Date(element.info.inCinemas).getTime(),
);
if (cinemaWindow(diff)) {
return {
status: 'cinema',
message: 'In Cinemas',
step: 3,
};
}
}
}

if (element.info.status === 'announced') {
Expand Down Expand Up @@ -332,9 +332,9 @@ function calcDate(diff) {
months -= years * 12;

let message = '~';
message += years ? `${years }y ` : '';
message += months ? `${months }m ` : '';
message += days ? `${days }d` : '';
message += years ? `${years}y ` : '';
message += months ? `${months}m ` : '';
message += days ? `${days}d` : '';
if (years) message = '> 1y';

return message;
Expand Down
Loading

0 comments on commit 1e381f4

Please sign in to comment.