diff --git a/ODPC.Server/Features/Publicaties/Publicatie.cs b/ODPC.Server/Features/Publicaties/Publicatie.cs new file mode 100644 index 0000000..a037f42 --- /dev/null +++ b/ODPC.Server/Features/Publicaties/Publicatie.cs @@ -0,0 +1,12 @@ +namespace ODPC.Features.Publicaties +{ + public class Publicatie + { + public Guid Uuid { get; set; } + public string? OfficieleTitel { get; set; } + public string? VerkorteTitel { get; set; } + public string? Omschrijving { get; set; } + public DateOnly Creatiedatum { get; set; } + public string? Status { get; set; } + } +} diff --git a/ODPC.Server/Features/Publicaties/PublicatieBijwerken/PublicatieBijwerkenController.cs b/ODPC.Server/Features/Publicaties/PublicatieBijwerken/PublicatieBijwerkenController.cs new file mode 100644 index 0000000..d05081d --- /dev/null +++ b/ODPC.Server/Features/Publicaties/PublicatieBijwerken/PublicatieBijwerkenController.cs @@ -0,0 +1,15 @@ +using Microsoft.AspNetCore.Mvc; + +namespace ODPC.Features.Publicaties.PublicatieBijwerken +{ + [ApiController] + public class PublicatieBijwerkenController : ControllerBase + { + [HttpPut("api/v1/publicaties/{uuid}")] + public IActionResult Put(Guid uuid, Publicatie publicatie) + { + PublicatiesMock.Publicaties[uuid] = publicatie; + return Ok(publicatie); + } + } +} diff --git a/ODPC.Server/Features/Publicaties/PublicatieDetails/PublicatieDetailsController.cs b/ODPC.Server/Features/Publicaties/PublicatieDetails/PublicatieDetailsController.cs new file mode 100644 index 0000000..26f33f4 --- /dev/null +++ b/ODPC.Server/Features/Publicaties/PublicatieDetails/PublicatieDetailsController.cs @@ -0,0 +1,16 @@ +using Microsoft.AspNetCore.Mvc; + +namespace ODPC.Features.Publicaties.PublicatieDetails +{ + [ApiController] + public class PublicatieDetailsController : ControllerBase + { + [HttpGet("api/v1/publicaties/{uuid}")] + public IActionResult Get(Guid uuid) + { + return PublicatiesMock.Publicaties.TryGetValue(uuid, out var publicatie) + ? Ok(publicatie) + : NotFound(); + } + } +} diff --git a/ODPC.Server/Features/Publicaties/PublicatieRegistreren/PublicatieRegistrerenController.cs b/ODPC.Server/Features/Publicaties/PublicatieRegistreren/PublicatieRegistrerenController.cs new file mode 100644 index 0000000..c086ff5 --- /dev/null +++ b/ODPC.Server/Features/Publicaties/PublicatieRegistreren/PublicatieRegistrerenController.cs @@ -0,0 +1,17 @@ +using Microsoft.AspNetCore.Mvc; + +namespace ODPC.Features.Publicaties.PublicatieRegistreren +{ + [ApiController] + public class PublicatieRegistrerenController : ControllerBase + { + [HttpPost("api/v1/publicaties")] + public IActionResult Post(Publicatie publicatie) + { + publicatie.Uuid = Guid.NewGuid(); + publicatie.Creatiedatum = DateOnly.FromDateTime(DateTime.Now); + PublicatiesMock.Publicaties[publicatie.Uuid] = publicatie; + return Ok(publicatie); + } + } +} diff --git a/ODPC.Server/Features/Publicaties/PublicatiesMock.cs b/ODPC.Server/Features/Publicaties/PublicatiesMock.cs new file mode 100644 index 0000000..87334df --- /dev/null +++ b/ODPC.Server/Features/Publicaties/PublicatiesMock.cs @@ -0,0 +1,25 @@ +namespace ODPC.Features.Publicaties +{ + public static class PublicatiesMock + { + public static readonly Dictionary Publicaties = new Publicatie[] + { + new() + { + Uuid = Guid.NewGuid(), + OfficieleTitel = "Openbaarheid en Verantwoording: De Impact van de Wet open overheid op Bestuurlijke Transparantie", + VerkorteTitel = "Openbaarheid en Verantwoording", + Omschrijving = "", + Creatiedatum = new DateOnly(2024, 08, 24) + }, + new() + { + Uuid = Guid.NewGuid(), + OfficieleTitel = "Inzicht voor Iedereen: Toepassing en Resultaten van de Wet open overheid", + VerkorteTitel = "Inzicht voor Iedereen", + Omschrijving = "", + Creatiedatum = new DateOnly(2024, 05, 02) + } + }.ToDictionary(x => x.Uuid); + } +} diff --git a/ODPC.Server/Features/Publicaties/PublicatiesOverzicht/PublicatiesOverzichtController.cs b/ODPC.Server/Features/Publicaties/PublicatiesOverzicht/PublicatiesOverzichtController.cs new file mode 100644 index 0000000..6631b72 --- /dev/null +++ b/ODPC.Server/Features/Publicaties/PublicatiesOverzicht/PublicatiesOverzichtController.cs @@ -0,0 +1,14 @@ +using Microsoft.AspNetCore.Mvc; + +namespace ODPC.Features.Publicaties.PublicatiesOverzicht +{ + [ApiController] + public class PublicatiesOverzichtController : ControllerBase + { + [HttpGet("api/v1/publicaties")] + public IActionResult Get() + { + return Ok(PublicatiesMock.Publicaties.Values.OrderByDescending(x => x.Creatiedatum)); + } + } +} diff --git a/odpc.client/src/features/publicatie/PublicatieDetails.vue b/odpc.client/src/features/publicatie/PublicatieDetails.vue index e8a7f02..04f418d 100644 --- a/odpc.client/src/features/publicatie/PublicatieDetails.vue +++ b/odpc.client/src/features/publicatie/PublicatieDetails.vue @@ -62,7 +62,7 @@ const publicatie = ref({ }); const { data, isFetching, error, post, put, execute } = useFetchApi( - () => `/api-mock/publicaties${props.id ? "/" + props.id : ""}`, + () => `/api/v1/publicaties${props.id ? "/" + props.id : ""}`, { immediate: false } ).json(); diff --git a/odpc.client/src/features/publicatie/PublicatiesOverview.vue b/odpc.client/src/features/publicatie/PublicatiesOverview.vue index 975428b..def4812 100644 --- a/odpc.client/src/features/publicatie/PublicatiesOverview.vue +++ b/odpc.client/src/features/publicatie/PublicatiesOverview.vue @@ -31,7 +31,7 @@ import SimpleSpinner from "@/components/SimpleSpinner.vue"; import AlertInline from "@/components/AlertInline.vue"; import type { Publicatie } from "./types"; -const { data, isFetching, error } = useFetchApi("/api-mock/publicaties").json(); +const { data, isFetching, error } = useFetchApi("/api/v1/publicaties").json();