< Summary

Information
Class: LGDXRobotCloud.API.Areas.Administration.Controllers.ActivityLogsController
Assembly: LGDXRobotCloud.API
File(s): /builds/yukaitung/lgdxrobot2-cloud/LGDXRobotCloud.API/Areas/Administration/Controllers/ActivityLogsController.cs
Line coverage
0%
Covered lines: 0
Uncovered lines: 16
Coverable lines: 16
Total lines: 48
Line coverage: 0%
Branch coverage
0%
Covered branches: 0
Total branches: 6
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%
GetActivityLogs()0%620%
GetActivityLog()100%210%

File(s)

/builds/yukaitung/lgdxrobot2-cloud/LGDXRobotCloud.API/Areas/Administration/Controllers/ActivityLogsController.cs

#LineLine coverage
 1using System.Text.Json;
 2using LGDXRobotCloud.API.Authorisation;
 3using LGDXRobotCloud.API.Configurations;
 4using LGDXRobotCloud.API.Services.Administration;
 5using LGDXRobotCloud.Data.Models.Business.Administration;
 6using LGDXRobotCloud.Data.Models.DTOs.V1.Responses;
 7using LGDXRobotCloud.Utilities.Constants;
 8using Microsoft.AspNetCore.Authentication.JwtBearer;
 9using Microsoft.AspNetCore.Authorization;
 10using Microsoft.AspNetCore.Mvc;
 11using Microsoft.Extensions.Options;
 12
 13namespace LGDXRobotCloud.API.Areas.Administration.Controllers;
 14
 15[ApiController]
 16[Area("Administration")]
 17[Route("[area]/[controller]")]
 18[Authorize(AuthenticationSchemes = LgdxRobotCloudAuthenticationSchemes.ApiKeyOrCertificateScheme)]
 19[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
 20[ValidateLgdxUserAccess]
 21
 022public class ActivityLogsController(
 023    IActivityLogService activityLogService,
 024    IOptionsSnapshot<LgdxRobotCloudConfiguration> lgdxRobotCloudConfiguration
 025  ) : ControllerBase
 26{
 027  private readonly IActivityLogService _activityLogService = activityLogService ?? throw new ArgumentNullException(nameo
 028  private readonly LgdxRobotCloudConfiguration _lgdxRobotCloudConfiguration = lgdxRobotCloudConfiguration.Value ?? throw
 29
 30  [HttpGet("")]
 31  [ProducesResponseType(typeof(IEnumerable<ActivityLogListDto>), StatusCodes.Status200OK)]
 32  public async Task<ActionResult<IEnumerable<ActivityLogListDto>>> GetActivityLogs(string? entityName, string? entityId,
 033  {
 034    pageSize = (pageSize > _lgdxRobotCloudConfiguration.ApiMaxPageSize) ? _lgdxRobotCloudConfiguration.ApiMaxPageSize : 
 035    var (activityLogs, PaginationHelper) = await _activityLogService.GetActivityLogsAsync(entityName, entityId, pageNumb
 036    Response.Headers.Append("X-Pagination", JsonSerializer.Serialize(PaginationHelper));
 037    return Ok(activityLogs.ToDto());
 038  }
 39
 40  [HttpGet("{id}", Name = "GetActivityLog")]
 41  [ProducesResponseType(typeof(ActivityLogDto), StatusCodes.Status200OK)]
 42  [ProducesResponseType(StatusCodes.Status404NotFound)]
 43  public async Task<ActionResult<ActivityLogDto>> GetActivityLog(int id)
 044  {
 045    var activityLog = await _activityLogService.GetActivityLogAsync(id);
 046    return Ok(activityLog.ToDto());
 047  }
 48}