< 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: 31
Coverable lines: 31
Total lines: 82
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%
RetryAllFailedTrigger()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 LGDXRobotCloud.Utilities.Constants;
 7using Microsoft.AspNetCore.Authentication.JwtBearer;
 8using Microsoft.AspNetCore.Authorization;
 9using Microsoft.AspNetCore.Mvc;
 10using Microsoft.Extensions.Options;
 11using System.Text.Json;
 12
 13namespace LGDXRobotCloud.API.Areas.Automation.Controllers;
 14
 15[ApiController]
 16[Area("Automation")]
 17[Route("[area]/[controller]")]
 18[Authorize(AuthenticationSchemes = LgdxRobotCloudAuthenticationSchemes.ApiKeyOrCertificationScheme)]
 19[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
 20[ValidateLgdxUserAccess]
 021public class TriggerRetriesController (
 022  IOptionsSnapshot<LgdxRobotCloudConfiguration> lgdxRobotCloudConfiguration,
 023  ITriggerRetryService triggerRetryService
 024) : ControllerBase
 25{
 026  private readonly LgdxRobotCloudConfiguration _lgdxRobotCloudConfiguration = lgdxRobotCloudConfiguration.Value ?? throw
 027  private readonly ITriggerRetryService _triggerRetryService = triggerRetryService ?? throw new ArgumentNullException(na
 28
 29  [HttpGet("")]
 30  [ProducesResponseType(typeof(IEnumerable<TriggerRetryListDto>), StatusCodes.Status200OK)]
 31  public async Task<ActionResult<IEnumerable<TriggerRetryListDto>>> GetTriggerRetries(int pageNumber = 1, int pageSize =
 032  {
 033    pageSize = (pageSize > _lgdxRobotCloudConfiguration.ApiMaxPageSize) ? _lgdxRobotCloudConfiguration.ApiMaxPageSize : 
 034    var (triggerRetries, PaginationHelper) = await _triggerRetryService.GetTriggerRetriesAsync(pageNumber, pageSize);
 035    Response.Headers.Append("X-Pagination", JsonSerializer.Serialize(PaginationHelper));
 036    return Ok(triggerRetries.ToDto());
 037  }
 38
 39  [HttpGet("{id}", Name = "GetTriggerRetry")]
 40  [ProducesResponseType(typeof(TriggerRetryDto), StatusCodes.Status200OK)]
 41  [ProducesResponseType(StatusCodes.Status404NotFound)]
 42  public async Task<ActionResult<TriggerRetryDto>> GetTriggerRetry(int id)
 043  {
 044    var triggerRetry = await _triggerRetryService.GetTriggerRetryAsync(id);
 045    return Ok(triggerRetry.ToDto());
 046  }
 47
 48  [HttpPost("{id}/Retry")]
 49  [ProducesResponseType(StatusCodes.Status204NoContent)]
 50  [ProducesResponseType(typeof(ValidationProblemDetails), StatusCodes.Status400BadRequest)]
 51  [ProducesResponseType(StatusCodes.Status404NotFound)]
 52  public async Task<ActionResult<TriggerRetryDto>> RetryTriggerRetry(int id)
 053  {
 054    await _triggerRetryService.RetryTriggerRetryAsync(id);
 055    return NoContent();
 056  }
 57
 58  [HttpPost("Triggers/{triggerId}/Retry")]
 59  [ProducesResponseType(StatusCodes.Status204NoContent)]
 60  [ProducesResponseType(typeof(ValidationProblemDetails), StatusCodes.Status400BadRequest)]
 61  [ProducesResponseType(StatusCodes.Status404NotFound)]
 62  public async Task<ActionResult<TriggerRetryDto>> RetryAllFailedTrigger(int triggerId)
 063  {
 064    await _triggerRetryService.RetryAllFailedTriggerAsync(triggerId);
 065    return NoContent();
 066  }
 67
 68  [HttpDelete("{id}")]
 69  [ProducesResponseType(StatusCodes.Status204NoContent)]
 70  [ProducesResponseType(StatusCodes.Status404NotFound)]
 71  public async Task<ActionResult> DeleteTriggerRetry(int id)
 072  {
 073    if (await _triggerRetryService.DeleteTriggerRetryAsync(id))
 074    {
 075      return NoContent();
 76    }
 77    else
 078    {
 079      return NotFound();
 80    }
 081  }
 82}