< Summary

Information
Class: LGDXRobotCloud.API.Areas.Automation.Controllers.TriggerRetriesController
Assembly: LGDXRobotCloud.API
File(s): /builds/yukaitung/lgdxrobot2-cloud/LGDXRobotCloud.API/Areas/Automation/Controllers/TriggerRetriesController.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 27
Coverable lines: 27
Total lines: 70
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 8
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(...)0%2040%
GetTriggerRetries()0%620%
GetTriggerRetry()100%210%
RetryTriggerRetry()100%210%
DeleteTriggerRetry()0%620%

File(s)

/builds/yukaitung/lgdxrobot2-cloud/LGDXRobotCloud.API/Areas/Automation/Controllers/TriggerRetriesController.cs

#LineLine coverage
 1using LGDXRobotCloud.API.Authorisation;
 2using LGDXRobotCloud.API.Configurations;
 3using LGDXRobotCloud.API.Services.Automation;
 4using LGDXRobotCloud.Data.Models.Business.Automation;
 5using LGDXRobotCloud.Data.Models.DTOs.V1.Responses;
 6using Microsoft.AspNetCore.Authentication.JwtBearer;
 7using Microsoft.AspNetCore.Authorization;
 8using Microsoft.AspNetCore.Mvc;
 9using Microsoft.Extensions.Options;
 10using System.Text.Json;
 11
 12namespace LGDXRobotCloud.API.Areas.Automation.Controllers;
 13
 14[ApiController]
 15[Area("Automation")]
 16[Route("[area]/[controller]")]
 17[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
 18[ValidateLgdxUserAccess]
 019public class TriggerRetriesController (
 020  IOptionsSnapshot<LgdxRobotCloudConfiguration> lgdxRobotCloudConfiguration,
 021  ITriggerRetryService triggerRetryService
 022) : ControllerBase
 23{
 024  private readonly LgdxRobotCloudConfiguration _lgdxRobotCloudConfiguration = lgdxRobotCloudConfiguration.Value ?? throw
 025  private readonly ITriggerRetryService _triggerRetryService = triggerRetryService ?? throw new ArgumentNullException(na
 26
 27  [HttpGet("")]
 28  [ProducesResponseType(typeof(IEnumerable<TriggerRetryListDto>), StatusCodes.Status200OK)]
 29  public async Task<ActionResult<IEnumerable<TriggerRetryListDto>>> GetTriggerRetries(int pageNumber = 1, int pageSize =
 030  {
 031    pageSize = (pageSize > _lgdxRobotCloudConfiguration.ApiMaxPageSize) ? _lgdxRobotCloudConfiguration.ApiMaxPageSize : 
 032    var (triggerRetries, PaginationHelper) = await _triggerRetryService.GetTriggerRetriesAsync(pageNumber, pageSize);
 033    Response.Headers.Append("X-Pagination", JsonSerializer.Serialize(PaginationHelper));
 034    return Ok(triggerRetries.ToDto());
 035  }
 36
 37  [HttpGet("{id}", Name = "GetTriggerRetry")]
 38  [ProducesResponseType(typeof(TriggerRetryDto), StatusCodes.Status200OK)]
 39  [ProducesResponseType(StatusCodes.Status404NotFound)]
 40  public async Task<ActionResult<TriggerRetryDto>> GetTriggerRetry(int id)
 041  {
 042    var triggerRetry = await _triggerRetryService.GetTriggerRetryAsync(id);
 043    return Ok(triggerRetry.ToDto());
 044  }
 45
 46  [HttpPost("{id}/Retry")]
 47  [ProducesResponseType(typeof(TriggerRetryDto), StatusCodes.Status204NoContent)]
 48  [ProducesResponseType(typeof(ValidationProblemDetails), StatusCodes.Status400BadRequest)]
 49  [ProducesResponseType(StatusCodes.Status404NotFound)]
 50  public async Task<ActionResult<TriggerRetryDto>> RetryTriggerRetry(int id)
 051  {
 052    await _triggerRetryService.RetryTriggerRetryAsync(id);
 053    return NoContent();
 054  }
 55
 56  [HttpDelete("{id}")]
 57  [ProducesResponseType(StatusCodes.Status204NoContent)]
 58  [ProducesResponseType(StatusCodes.Status404NotFound)]
 59  public async Task<ActionResult> DeleteTriggerRetry(int id)
 060  {
 061    if (await _triggerRetryService.DeleteTriggerRetryAsync(id))
 062    {
 063      return NoContent();
 64    }
 65    else
 066    {
 067      return NotFound();
 68    }
 069  }
 70}