Skip to content

Commit

Permalink
add "limit"
Browse files Browse the repository at this point in the history
  • Loading branch information
Nathaniel Moschkin committed Sep 14, 2024
1 parent 1dc61b7 commit 41ddee9
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 17 deletions.
20 changes: 8 additions & 12 deletions app/abstract/voyagetracker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -147,7 +147,8 @@ export abstract class VoyageTrackerBase {

async getTrackedVoyages(
dbid?: number,
trackerId?: number
trackerId?: number,
limit?: number
): Promise<ApiResult> {
Logger.info("Get voyage data", { dbid, trackerId });
let voyages: TrackedVoyage[] | null = null;
Expand Down Expand Up @@ -351,18 +352,13 @@ export abstract class VoyageTrackerBase {

async getTrackedData(
dbid?: number,
trackerId?: number
trackerId?: number,
limit?: number
): Promise<ApiResult> {
Logger.info("Get tracked data", { dbid, trackerId });
let voyages: TrackedVoyage[] | null = null;
let assignments: TrackedCrew[] | null = null;

if (!dbid && !trackerId)
return {
Status: 400,
Body: { result: "bad input" },
};

if (!dbid)
return {
Status: 400,
Expand All @@ -378,8 +374,8 @@ export abstract class VoyageTrackerBase {
? await this.getAssignmentsByTrackerId(dbid, trackerId)
: null;
} else {
voyages = await this.getVoyagesByDbid(dbid);
assignments = await this.getAssignmentsByDbid(dbid);
voyages = await this.getVoyagesByDbid(dbid, limit);
assignments = await this.getAssignmentsByDbid(dbid, limit);
}
} catch (err) {
if (typeof err === "string") {
Expand Down Expand Up @@ -413,7 +409,7 @@ export abstract class VoyageTrackerBase {

protected abstract deleteVoyageByTrackerId(dbid: number, trackerId: number): Promise<boolean>;

protected abstract getVoyagesByDbid(dbid: number): Promise<TrackedVoyage[] | null>;
protected abstract getVoyagesByDbid(dbid: number, limit?: number): Promise<TrackedVoyage[] | null>;

protected abstract getVoyagesByTrackerId(dbid: number, trackerId: number): Promise<TrackedVoyage[] | null>;

Expand All @@ -423,7 +419,7 @@ export abstract class VoyageTrackerBase {
timeStamp?: Date
): Promise<TrackerPostResult>;

protected abstract getAssignmentsByDbid(dbid: number): Promise<TrackedCrew[] | null>;
protected abstract getAssignmentsByDbid(dbid: number, limit?: number): Promise<TrackedCrew[] | null>;

protected abstract getAssignmentsByTrackerId(dbid: number, trackerId: number): Promise<TrackedCrew[] | null>;

Expand Down
3 changes: 2 additions & 1 deletion app/controllers/api.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,8 @@ router.get('/getTrackedData', async (req: Request, res: Response, next) => {
try {
let dbid = req.query?.dbid ? Number.parseInt(req.query.dbid.toString()) : undefined;
let trackerId = req.query?.trackerId ? Number.parseInt(req.query.trackerId.toString()) : undefined;
let apiResult = await VoyageTrackerAPI.getTrackedData(dbid, trackerId);
let limit = req.query?.limit ? Number.parseInt(req.query.limit.toString()) : undefined;
let apiResult = await VoyageTrackerAPI.getTrackedData(dbid, trackerId, limit);
res.status(apiResult.Status).send(apiResult.Body);
} catch (e) {
next(e);
Expand Down
8 changes: 4 additions & 4 deletions app/logic/voyagetracker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,13 +20,13 @@ export class VoyageTracker extends VoyageTrackerBase {
}


protected async getVoyagesByDbid(dbid: number) {
protected async getVoyagesByDbid(dbid: number, limit = 100) {
let res: TrackedVoyage[] | null = null;

const sql = await makeSql(dbid);
if (sql) {
const repo = sql.getRepository(TrackedVoyage);
res = await repo.findAll({ where: { dbid } });
res = await repo.findAll({ where: { dbid }, order: [['updatedAt', 'DESC']], limit });
// sql?.close();
}

Expand Down Expand Up @@ -122,14 +122,14 @@ export class VoyageTracker extends VoyageTrackerBase {
return { status: 500 };
}

protected async getAssignmentsByDbid(dbid: number) {
protected async getAssignmentsByDbid(dbid: number, limit = 100) {
let res: TrackedCrew[] | null = null;

const sql = await makeSql(dbid);

if (sql) {
const repo = sql.getRepository(TrackedCrew);
res = await repo.findAll({ where: { dbid } });
res = await repo.findAll({ where: { dbid }, order: [['timeStamp', 'DESC']], limit });
}

return res;
Expand Down

0 comments on commit 41ddee9

Please sign in to comment.