< Summary

Information
Class: OzonOrdersWeb.Areas.Studio2.Controllers.Directories.JapartsController
Assembly: OzonOrdersWeb
File(s): /home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Controllers/Directories/JapartsController.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 20
Coverable lines: 20
Total lines: 48
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 2
Branch coverage: 0%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%210%
Index()100%210%
Logs()100%210%
Balance()100%210%
Search()100%210%
Basket()100%210%
Orders()100%210%
HandleError(...)0%620%

File(s)

/home/runner/work/Studio2Prod/Studio2Prod/OzonOrdersWeb/Areas/Studio2/Controllers/Directories/JapartsController.cs

#LineLine coverage
 1using Microsoft.AspNetCore.Authorization;
 2using Microsoft.AspNetCore.Mvc;
 3using Services.ApiServices.ApiSupplierRequestLog;
 4using Services.ApiServices.JapartsApi;
 5
 6namespace OzonOrdersWeb.Areas.Studio2.Controllers.Directories;
 7
 8[Authorize(Roles = "User,Admin")]
 9[Area("Studio2")]
 10[Route("Japarts/[action]")]
 011public sealed class JapartsController(JapartsDataManager japarts, ApiSupplierRequestLogStore logs) : Controller
 12{
 013    [HttpGet, Route("~/Japarts")] public IActionResult Index() => View();
 014    [HttpGet] public IActionResult Logs() => Json(logs.Get("Japarts"));
 15    [HttpGet]
 16    public async Task<IActionResult> Balance(CancellationToken ct)
 17    {
 018        try { return Json(await japarts.GetBalanceAsync(ct)); }
 019        catch (Exception ex) { return HandleError(ex); }
 020    }
 21
 22    [HttpGet]
 23    public async Task<IActionResult> Search(string code = "MB831042", string? brand = "Mitsubishi", CancellationToken ct
 24    {
 025        try { return Json(await japarts.SearchAsync(code, brand, ct)); }
 026        catch (Exception ex) { return HandleError(ex); }
 027    }
 28
 29    [HttpGet]
 30    public async Task<IActionResult> Basket(CancellationToken ct)
 31    {
 032        try { return Json(await japarts.GetBasketAsync(ct)); }
 033        catch (Exception ex) { return HandleError(ex); }
 034    }
 35
 36    [HttpGet]
 37    public async Task<IActionResult> Orders(int interval = 30, CancellationToken ct = default)
 38    {
 039        try { return Json(await japarts.GetOrdersAsync(interval, ct)); }
 040        catch (Exception ex) { return HandleError(ex); }
 041    }
 42
 043    private IActionResult HandleError(Exception exception) => exception switch
 044    {
 045        JapartsApiException apiException => StatusCode(StatusCodes.Status502BadGateway, new { error = true, message = ap
 046        _ => StatusCode(StatusCodes.Status500InternalServerError, new { error = true, message = exception.Message })
 047    };
 48}