Skip to content

Commit cecc772

Browse files
Allowing each periodic http method to accept optional year/month/day numeric params for creating a periodic note for a specified date.
1 parent a2bf1d5 commit cecc772

File tree

1 file changed

+38
-9
lines changed

1 file changed

+38
-9
lines changed

src/requestHandler.ts

Lines changed: 38 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -721,13 +721,16 @@ export default class RequestHandler {
721721
return [periodic[period], null];
722722
}
723723

724-
periodicGetNote(periodName: string): [TFile | null, ErrorCode | null] {
724+
periodicGetNote(
725+
periodName: string,
726+
timestamp: number
727+
): [TFile | null, ErrorCode | null] {
725728
const [period, err] = this.periodicGetInterface(periodName);
726729
if (err) {
727730
return [null, err];
728731
}
729732

730-
const now = (window as any).moment(Date.now());
733+
const now = (window as any).moment(timestamp);
731734
const all = period.getAll();
732735

733736
const file = period.get(now, all);
@@ -739,9 +742,10 @@ export default class RequestHandler {
739742
}
740743

741744
async periodicGetOrCreateNote(
742-
periodName: string
745+
periodName: string,
746+
timestamp: number
743747
): Promise<[TFile | null, ErrorCode | null]> {
744-
const [gottenFile, err] = this.periodicGetNote(periodName);
748+
const [gottenFile, err] = this.periodicGetNote(periodName, timestamp);
745749
let file = gottenFile;
746750
if (err === ErrorCode.PeriodicNoteDoesNotExist) {
747751
const [period] = this.periodicGetInterface(periodName);
@@ -780,11 +784,23 @@ export default class RequestHandler {
780784
return handler(path, req, res);
781785
}
782786

787+
getPeriodicDateFromParams(params: any): number {
788+
const { year, month, day } = params;
789+
790+
if (year && month && day) {
791+
const date = new Date(year, month - 1, day);
792+
return date.getTime();
793+
}
794+
795+
return Date.now();
796+
}
797+
783798
async periodicGet(
784799
req: express.Request,
785800
res: express.Response
786801
): Promise<void> {
787-
const [file, err] = this.periodicGetNote(req.params.period);
802+
const date = this.getPeriodicDateFromParams(req.params);
803+
const [file, err] = this.periodicGetNote(req.params.period, date);
788804
if (err) {
789805
this.returnCannedResponse(res, { errorCode: err });
790806
return;
@@ -797,7 +813,11 @@ export default class RequestHandler {
797813
req: express.Request,
798814
res: express.Response
799815
): Promise<void> {
800-
const [file, err] = await this.periodicGetOrCreateNote(req.params.period);
816+
const date = this.getPeriodicDateFromParams(req.params);
817+
const [file, err] = await this.periodicGetOrCreateNote(
818+
req.params.period,
819+
date
820+
);
801821
if (err) {
802822
this.returnCannedResponse(res, { errorCode: err });
803823
return;
@@ -810,7 +830,11 @@ export default class RequestHandler {
810830
req: express.Request,
811831
res: express.Response
812832
): Promise<void> {
813-
const [file, err] = await this.periodicGetOrCreateNote(req.params.period);
833+
const date = this.getPeriodicDateFromParams(req.params);
834+
const [file, err] = await this.periodicGetOrCreateNote(
835+
req.params.period,
836+
date
837+
);
814838
if (err) {
815839
this.returnCannedResponse(res, { errorCode: err });
816840
return;
@@ -823,7 +847,11 @@ export default class RequestHandler {
823847
req: express.Request,
824848
res: express.Response
825849
): Promise<void> {
826-
const [file, err] = await this.periodicGetOrCreateNote(req.params.period);
850+
const date = this.getPeriodicDateFromParams(req.params);
851+
const [file, err] = await this.periodicGetOrCreateNote(
852+
req.params.period,
853+
date
854+
);
827855
if (err) {
828856
this.returnCannedResponse(res, { errorCode: err });
829857
return;
@@ -841,7 +869,8 @@ export default class RequestHandler {
841869
req: express.Request,
842870
res: express.Response
843871
): Promise<void> {
844-
const [file, err] = this.periodicGetNote(req.params.period);
872+
const date = this.getPeriodicDateFromParams(req.params);
873+
const [file, err] = this.periodicGetNote(req.params.period, date);
845874
if (err) {
846875
this.returnCannedResponse(res, { errorCode: err });
847876
return;

0 commit comments

Comments
 (0)