55using MetaDataAPI . Models . Errors ;
66using MetaDataAPI . Services . Http ;
77using MetaDataAPI . Services . ChainsInfo ;
8+ using Poolz . Finance . CSharp . Polly . Extensions ;
89using poolz . finance . csharp . contracts . LockDealNFT ;
910
1011namespace MetaDataAPI . Routing . Requests ;
@@ -13,7 +14,8 @@ public class GetMetadataRequestHandler(
1314 IServiceProvider serviceProvider ,
1415 IChainManager chainManager ,
1516 ILockDealNFTService lockDealNft ,
16- IWeb3Factory web3Factory
17+ IWeb3Factory web3Factory ,
18+ IRetryExecutor retry
1719) : IRequestHandler < GetMetadataRequest , LambdaResponse >
1820{
1921 public Task < LambdaResponse > Handle ( GetMetadataRequest request , CancellationToken cancellationToken )
@@ -28,12 +30,14 @@ public Task<LambdaResponse> Handle(GetMetadataRequest request, CancellationToken
2830 }
2931
3032 lockDealNft . Initialize ( web3Factory . Create ( chainId . ToRpcUrl ( ) ) , chainInfo . LockDealNFT ) ;
31- if ( ! lockDealNft . IsPoolIdInSupplyRange ( poolId ) )
33+ var isPoolIdInSupplyRange = retry . Execute ( _ => lockDealNft . IsPoolIdInSupplyRange ( poolId ) , ct : cancellationToken ) ;
34+
35+ if ( ! isPoolIdInSupplyRange )
3236 {
3337 return Task . FromResult < LambdaResponse > ( new PoolIdNotInSupplyRangeResponse ( poolId ) ) ;
3438 }
3539
36- var poolsInfo = lockDealNft . FetchPoolInfo ( poolId ) ;
40+ var poolsInfo = retry . Execute ( _ => lockDealNft . FetchPoolInfo ( poolId ) , ct : cancellationToken ) ;
3741 var provider = AbstractProvider . CreateFromPoolInfo ( poolsInfo , chainInfo , serviceProvider ) ;
3842 var metadata = provider . GetErc721Metadata ( ) ;
3943
0 commit comments