11import { SpanStatusCode } from "@opentelemetry/api" ;
22
3+ import { createDebug } from "@/debug" ;
34import { getOtelTracer } from "@/open-telemetry" ;
45
56import { APL , AuthData } from "../apl" ;
67import { createAplEntity , UsedTable } from "./apl-db-model" ;
78import { APLRepository } from "./apl-repository" ;
89import { DynamoAPLRepository } from "./dynamo-apl-repository" ;
910
10- type Envs = {
11- APL_TABLE_NAME : string ;
12- AWS_REGION : string ;
13- AWS_ACCESS_KEY_ID : string ;
14- AWS_SECRET_ACCESS_KEY : string ;
15- } ;
16-
1711export class DynamoAPL implements APL {
1812 private repository : APLRepository ;
1913
2014 private tracer = getOtelTracer ( ) ;
2115
22- private env : Envs ;
16+ private debug = createDebug ( "DynamoAPL" ) ;
2317
24- static create ( deps : { env : Envs ; table : UsedTable } ) {
18+ static create ( deps : { table : UsedTable } ) {
2519 return new DynamoAPL ( {
2620 repository : new DynamoAPLRepository ( {
2721 entity : createAplEntity ( deps . table ) ,
2822 } ) ,
29- env : deps . env ,
3023 } ) ;
3124 }
3225
33- constructor ( deps : { env : Envs ; repository : APLRepository } ) {
34- this . env = deps . env ;
26+ constructor ( deps : { repository : APLRepository } ) {
3527 this . repository = deps . repository ;
3628 }
3729
3830 async get ( saleorApiUrl : string ) : Promise < AuthData | undefined > {
31+ this . debug ( "get called with saleorApiUrl: %s" , saleorApiUrl ) ;
3932 return this . tracer . startActiveSpan ( "DynamoAPL.get" , async ( span ) => {
4033 try {
4134 const getEntryResult = await this . repository . getEntry ( {
@@ -48,16 +41,19 @@ export class DynamoAPL implements APL {
4841 } )
4942 . end ( ) ;
5043
44+ this . debug ( "get successful for saleorApiUrl: %s" , saleorApiUrl ) ;
5145 return getEntryResult ?? undefined ;
5246 } catch ( e ) {
5347 span . setStatus ( { code : SpanStatusCode . ERROR } ) . end ( ) ;
48+ this . debug ( "get error for saleorApiUrl: %s, error: %O" , saleorApiUrl , e ) ;
5449
5550 throw new Error ( "GetAuthDataError: Failed to get APL entry" ) ;
5651 }
5752 } ) ;
5853 }
5954
6055 async set ( authData : AuthData ) : Promise < void > {
56+ this . debug ( "set called with authData for saleorApiUrl: %s" , authData . saleorApiUrl ) ;
6157 return this . tracer . startActiveSpan ( "DynamoAPL.set" , async ( span ) => {
6258 try {
6359 await this . repository . setEntry ( {
@@ -69,15 +65,19 @@ export class DynamoAPL implements APL {
6965 code : SpanStatusCode . OK ,
7066 } )
7167 . end ( ) ;
68+
69+ this . debug ( "set successful for saleorApiUrl: %s" , authData . saleorApiUrl ) ;
7270 } catch ( e ) {
7371 span . setStatus ( { code : SpanStatusCode . ERROR } ) . end ( ) ;
72+ this . debug ( "set error for saleorApiUrl: %s, error: %O" , authData . saleorApiUrl , e ) ;
7473
7574 throw new Error ( "SetAuthDataError: Failed to set APL entry" ) ;
7675 }
7776 } ) ;
7877 }
7978
8079 async delete ( saleorApiUrl : string ) : Promise < void > {
80+ this . debug ( "delete called with saleorApiUrl: %s" , saleorApiUrl ) ;
8181 return this . tracer . startActiveSpan ( "DynamoAPL.delete" , async ( span ) => {
8282 try {
8383 await this . repository . deleteEntry ( {
@@ -89,15 +89,19 @@ export class DynamoAPL implements APL {
8989 code : SpanStatusCode . OK ,
9090 } )
9191 . end ( ) ;
92+
93+ this . debug ( "delete successful for saleorApiUrl: %s" , saleorApiUrl ) ;
9294 } catch ( e ) {
9395 span . setStatus ( { code : SpanStatusCode . ERROR } ) . end ( ) ;
96+ this . debug ( "delete error for saleorApiUrl: %s, error: %O" , saleorApiUrl , e ) ;
9497
9598 throw new Error ( "DeleteAuthDataError: Failed to set APL entry" ) ;
9699 }
97100 } ) ;
98101 }
99102
100103 async getAll ( ) : Promise < AuthData [ ] > {
104+ this . debug ( "getAll called" ) ;
101105 return this . tracer . startActiveSpan ( "DynamoAPL.getAll" , async ( span ) => {
102106 try {
103107 const getAllEntriesResult = await this . repository . getAllEntries ( ) ;
@@ -108,9 +112,11 @@ export class DynamoAPL implements APL {
108112 } )
109113 . end ( ) ;
110114
115+ this . debug ( "getAll successful, found %d entries" , getAllEntriesResult ?. length ?? 0 ) ;
111116 return getAllEntriesResult ?? [ ] ;
112117 } catch ( e ) {
113118 span . setStatus ( { code : SpanStatusCode . ERROR } ) . end ( ) ;
119+ this . debug ( "getAll error: %O" , e ) ;
114120
115121 throw new Error ( "GetAllAuthDataError: Failed to set APL entry" ) ;
116122 }
0 commit comments