< Summary

Class:MainScripts.DCL.ServiceProviders.OpenSea.RequestHandlers.SingleAssetRequestHandler
Assembly:OpenSea_Internal
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/ServiceProviders/OpenSea/RequestHandlers/SingleAssetRequestHandler.cs
Covered lines:0
Uncovered lines:26
Coverable lines:26
Total lines:79
Line coverage:0% (0 of 26)
Covered branches:0
Total branches:0
Covered methods:0
Total methods:7
Method coverage:0% (0 of 7)

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
SingleAssetRequestHandler(...)0%2100%
get_schedulableRequestHandler()0%2100%
GetUrl()0%2100%
SetApiResponse(...)0%20400%
SetApiResponseError(...)0%2100%
CanRetry()0%2100%
Retry()0%2100%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/ServiceProviders/OpenSea/RequestHandlers/SingleAssetRequestHandler.cs

#LineLine coverage
 1using DCL.Helpers;
 2using MainScripts.DCL.ServiceProviders.OpenSea.Requests;
 3using MainScripts.DCL.ServiceProviders.OpenSea.RequestScheduler;
 4using System;
 5using UnityEngine;
 6
 7namespace MainScripts.DCL.ServiceProviders.OpenSea.RequestHandlers
 8{
 9    internal class SingleAssetRequestHandler : IRequestHandler
 10    {
 11        const bool VERBOSE = false;
 12
 013        private readonly SchedulableRequestHandler schedulableHandler = new SchedulableRequestHandler();
 14        private readonly RequestAssetSingle request;
 15        private readonly RequestController requestController;
 16        private readonly KernelConfig kernelConfig;
 17
 18        private int retryCount = 0;
 19
 020        SchedulableRequestHandler IRequestHandler.schedulableRequestHandler => schedulableHandler;
 21
 022        public SingleAssetRequestHandler(RequestAssetSingle request, RequestController requestController, KernelConfig k
 23        {
 24            if (VERBOSE)
 25                Debug.Log($"SingleAssetRequestHandler: ({GetHashCode()}) {request.requestId} created");
 26
 027            this.request = request;
 028            this.requestController = requestController;
 029            this.kernelConfig = kernelConfig;
 030            schedulableHandler.SetReadyToBeScheduled(this);
 031        }
 32
 33        string IRequestHandler.GetUrl() =>
 034            OpenSeaAPI.GetSingleAssetUrl(request.chain, request.contractAddress, request.tokenId, kernelConfig.Get().Get
 35
 36        void IRequestHandler.SetApiResponse(string responseJson, Action onSuccess, Action<string> onError)
 37        {
 038            OpenSeaNftDto response = null;
 39
 40            try
 41            {
 042                response = Utils.FromJsonWithNulls<OpenSeaNftDto>(responseJson);
 043            }
 044            catch (Exception e)
 45            {
 046                onError?.Invoke(e.Message);
 047            }
 48
 049            if (response == null)
 050                return;
 51
 52            if (VERBOSE)
 53                Debug.Log($"SingleAssetRequestHandler: ({GetHashCode()}) {request.requestId} resolved");
 54
 055            request.Resolve(response);
 056            onSuccess?.Invoke();
 057        }
 58
 59        void IRequestHandler.SetApiResponseError(string error)
 60        {
 61            if (VERBOSE)
 62                Debug.Log($"SingleAssetRequestHandler: ({GetHashCode()}) {request.requestId} rejected {error}");
 63
 064            request.Reject(error);
 065        }
 66
 67        bool IRequestHandler.CanRetry() =>
 068            retryCount < OpenSeaAPI.REQUESTS_RETRY_ATTEMPS;
 69
 70        void IRequestHandler.Retry()
 71        {
 72            if (VERBOSE)
 73                Debug.Log($"SingleAssetRequestHandler: ({GetHashCode()}) {request.requestId} retry {retryCount}");
 74
 075            requestController.requestScheduler.EnqueueRequest(this);
 076            retryCount ++;
 077        }
 78    }
 79}