diff --git a/Marechai.Data/Dtos/Iso4217Dto.cs b/Marechai.Data/Dtos/Iso4217Dto.cs new file mode 100644 index 00000000..e29bd11e --- /dev/null +++ b/Marechai.Data/Dtos/Iso4217Dto.cs @@ -0,0 +1,44 @@ +/****************************************************************************** +// MARECHAI: Master repository of computing history artifacts information +// ---------------------------------------------------------------------------- +// +// Author(s) : Natalia Portillo +// +// --[ License ] -------------------------------------------------------------- +// +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as +// published by the Free Software Foundation, either version 3 of the +// License, or (at your option) any later version. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . +// +// ---------------------------------------------------------------------------- +// Copyright © 2003-2021 Natalia Portillo +*******************************************************************************/ + +using System.ComponentModel.DataAnnotations; +using System.Text.Json.Serialization; + +namespace Marechai.Data.Dtos; + +public class Iso4217Dto +{ + [JsonPropertyName("code")] [Required] public required string Code { get; set; } + + [JsonPropertyName("numeric")] + [Required] + public short Numeric { get; set; } + + [JsonPropertyName("minor_units")] public byte? MinorUnits { get; set; } + + [JsonPropertyName("name")] [Required] public required string Name { get; set; } + + [JsonPropertyName("withdrawn")] public DateTime? Withdrawn { get; set; } +} \ No newline at end of file diff --git a/Marechai.Server/Controllers/Iso4217Controller.cs b/Marechai.Server/Controllers/Iso4217Controller.cs index 28b219e5..367a6d28 100644 --- a/Marechai.Server/Controllers/Iso4217Controller.cs +++ b/Marechai.Server/Controllers/Iso4217Controller.cs @@ -26,6 +26,7 @@ using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; +using Marechai.Data.Dtos; using Marechai.Database.Models; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; @@ -42,5 +43,17 @@ public class Iso4217Controller(MarechaiContext context) : ControllerBase [AllowAnonymous] [ProducesResponseType(StatusCodes.Status200OK)] [ProducesResponseType(StatusCodes.Status400BadRequest)] - public Task> GetAsync() => context.Iso4217.OrderBy(c => c.Name).ToListAsync(); + public Task> GetAsync() + { + return context.Iso4217.OrderBy(c => c.Name) + .Select(c => new Iso4217Dto + { + Code = c.Code, + Numeric = c.Numeric, + MinorUnits = c.MinorUnits, + Name = c.Name, + Withdrawn = c.Withdrawn + }) + .ToListAsync(); + } } \ No newline at end of file