-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathReportParameterController.cs
More file actions
140 lines (133 loc) · 4.93 KB
/
Copy pathReportParameterController.cs
File metadata and controls
140 lines (133 loc) · 4.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using PayrollEngine.Api.Core;
using PayrollEngine.Domain.Application.Service;
using ApiObject = PayrollEngine.Api.Model;
// ReSharper disable UnusedParameter.Global
namespace PayrollEngine.Backend.Controller;
/// <inheritdoc/>
[ApiControllerName("Report parameters")]
[Route("api/tenants/{tenantId}/regulations/{regulationId}/reports/{reportId}/parameters")]
public class ReportParameterController : Api.Controller.ReportParameterController
{
/// <inheritdoc/>
public ReportParameterController(IReportService reportService, IReportParameterService reportParameterService,
IControllerRuntime runtime) :
base(reportService, reportParameterService, runtime)
{
}
/// <summary>
/// Query report parameters
/// </summary>
/// <param name="tenantId">The tenant id</param>
/// <param name="regulationId">The tenant id</param>
/// <param name="reportId">The report id</param>
/// <param name="query">Query parameters</param>
/// <returns>The report parameters</returns>
[HttpGet]
[OkResponse]
[NotFoundResponse]
[UnprocessableEntityResponse]
[ApiOperationId("QueryReportParameters")]
public async Task<ActionResult> QueryReportParametersAsync(int tenantId, int regulationId, int reportId, [FromQuery] Query query)
{
// authorization
var authResult = await TenantRequestAsync(tenantId);
if(authResult != null)
{
return authResult;
}
return await QueryItemsAsync(reportId, query);
}
/// <summary>
/// Get a report parameter
/// </summary>
/// <param name="tenantId">The tenant id</param>
/// <param name="regulationId">The tenant id</param>
/// <param name="reportId">The report id</param>
/// <param name="parameterId">The id of the parameter</param>
/// <returns>The report parameter</returns>
[HttpGet("{parameterId}")]
[OkResponse]
[NotFoundResponse]
[ApiOperationId("GetReportParameter")]
public async Task<ActionResult<ApiObject.ReportParameter>> GetReportParameterAsync(
int tenantId, int regulationId, int reportId, int parameterId)
{
// authorization
var authResult = await TenantRequestAsync(tenantId);
if(authResult != null)
{
return authResult;
}
return await GetAsync(reportId, parameterId);
}
/// <summary>
/// Add a new report parameter
/// </summary>
/// <param name="tenantId">The tenant id</param>
/// <param name="regulationId">The tenant id</param>
/// <param name="reportId">The report id</param>
/// <param name="parameter">The report parameter to add</param>
/// <returns>The newly created report parameter</returns>
[HttpPost]
[CreatedResponse]
[NotFoundResponse]
[UnprocessableEntityResponse]
[ApiOperationId("CreateReportParameter")]
public async Task<ActionResult<ApiObject.ReportParameter>> CreateReportParameterAsync(
int tenantId, int regulationId, int reportId, ApiObject.ReportParameter parameter)
{
// authorization
var authResult = await TenantRequestAsync(tenantId);
if(authResult != null)
{
return authResult;
}
return await CreateAsync(reportId, parameter);
}
/// <summary>
/// Update a report parameter
/// </summary>
/// <param name="tenantId">The tenant id</param>
/// <param name="regulationId">The tenant id</param>
/// <param name="reportId">The report id</param>
/// <param name="parameter">The report parameter to modify</param>
/// <returns>The modified parameter</returns>
[HttpPut("{parameterId}")]
[OkResponse]
[NotFoundResponse]
[UnprocessableEntityResponse]
[ApiOperationId("UpdateReportParameter")]
public async Task<ActionResult<ApiObject.ReportParameter>> UpdateReportParameterAsync(
int tenantId, int regulationId, int reportId, ApiObject.ReportParameter parameter)
{
// authorization
var authResult = await TenantRequestAsync(tenantId);
if(authResult != null)
{
return authResult;
}
return await UpdateAsync(reportId, parameter);
}
/// <summary>
/// Delete a report
/// </summary>
/// <param name="tenantId">The tenant id</param>
/// <param name="regulationId">The tenant id</param>
/// <param name="reportId">The report id</param>
/// <param name="parameterId">The id of the report parameter</param>
[HttpDelete("{parameterId}")]
[ApiOperationId("DeleteReportParameter")]
public async Task<IActionResult> DeleteReportParameterAsync(int tenantId,
int regulationId, int reportId, int parameterId)
{
// authorization
var authResult = await TenantRequestAsync(tenantId);
if(authResult != null)
{
return authResult;
}
return await DeleteAsync(reportId, parameterId);
}
}