@@ -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