kreta/Kreta.WebApi/Ellenorzo/Kreta.Ellenorzo.WebApi/VN/Controllers/FelhasznaloController.cs
2024-03-13 00:33:46 +01:00

161 lines
9.8 KiB
C#

using System;
using System.Collections.Generic;
using System.Net;
using System.Web.Http;
using Kreta.Ellenorzo.BL.VN.Felhasznalo;
using Kreta.Ellenorzo.BL.VN.Felhasznalo.Alkalmazott.Tanar.Osztalyfonok;
using Kreta.Ellenorzo.Dto.VN.Exception;
using Kreta.Ellenorzo.Dto.VN.Felhasznalo;
using Kreta.Ellenorzo.Dto.VN.Felhasznalo.Alkalmazott.Tanar.OsztalyFonok;
using Kreta.Ellenorzo.Dto.VN.Felhasznalo.Gondviselo;
using Kreta.Ellenorzo.Dto.VN.Felhasznalo.Tanulo;
using Kreta.Ellenorzo.Enums;
using Kreta.Ellenorzo.Web.FilterAttributes;
using Kreta.Ellenorzo.WebApi.FilterAttributes;
using Kreta.Ellenorzo.WebApi.VN.Documentation;
using Kreta.Ellenorzo.WebApi.VN.Logic;
using Swashbuckle.Examples;
using Swashbuckle.Swagger.Annotations;
using static Kreta.Ellenorzo.Dto.VN.Converter.ResponseModelConverter;
namespace Kreta.Ellenorzo.WebApi.VN.Controllers
{
[ApiKeyAuthorization]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[RoutePrefix(Constants.RoutePrefix)]
[SwaggerResponse(HttpStatusCode.InternalServerError, DescriptionLookUp.IsmeretlenHibaTortentResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.InternalServerError, typeof(IsmeretlenHibaExample))]
[SwaggerResponse(HttpStatusCode.Unauthorized, DescriptionLookUp.JogosulatlanTokenLejartResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Unauthorized, typeof(LejartTokenExample))]
[SwaggerResponse(HttpStatusCode.Forbidden, DescriptionLookUp.HozzaferesMegtagadvaResponseLeiras, typeof(string))]
[SwaggerResponseExample(HttpStatusCode.Forbidden, typeof(PermissionDeniedExample))]
[SwaggerResponse(HttpStatusCode.Conflict, DescriptionLookUp.TanevetValtottAzIntezmeny, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.Conflict, typeof(IntezmenyMarTanevetValtottExample))]
public class FelhasznaloController : ApiController
{
/// <summary>
/// Tanulóval, gondviselőivel és intézményével kapcsolatos információk és elérhetőségek
/// </summary>
[HttpGet, Route("Sajat/TanuloAdatlap")]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras + DescriptionLookUp.TanuloTorolveLett, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyExampleProvider<FelhasznaloController, TanuloGetResponseDto>))]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.TanuloAdataiResponseLeiras + DescriptionOneNote.Felhasznalo, typeof(TanuloGetResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public TanuloGetResponseDto GetTanuloAdatlap()
{
return ((FelhasznaloFacade)Activator.CreateInstance(typeof(FelhasznaloFacade), FelhasznaloLogic.GetFelhasznalo())).GetTanuloAdatlap();
}
/// <summary>
/// Osztályfőnökök lekérése
/// </summary>
[HttpGet, Route("Felhasznalok/Alkalmazottak/Tanarok/Osztalyfonokok")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.ListaUidVagyUidsFilterResponseLeiras + DescriptionOneNote.Felhasznalo, typeof(OsztalyfonokListResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyListExampleProvider<FelhasznaloController, OsztalyfonokListResponseDto>))]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public HashSet<OsztalyfonokListResponseDto> GetOsztalyfonokok([FromUri] OsztalyfonokListRequestDto request)
{
return ModelToDto(((OsztalyfonokFacade)Activator.CreateInstance(typeof(OsztalyfonokFacade), FelhasznaloLogic.GetFelhasznalo())).ListOsztalyfonokForTanuloAndGondviselo(request));
}
/// <summary>
/// Bankszámlaszám rögzítése a tanulóhoz.
/// </summary>
[HttpPost, Route("Sajat/Bankszamla")]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.BankszamlaRogzitesSikeres)]
[SwaggerRequestExample(typeof(BankszamlaRequestDto), typeof(BankszamlaRequestDto))]
public void PostBankszamla(BankszamlaRequestDto request)
{
((FelhasznaloFacade)Activator.CreateInstance(typeof(FelhasznaloFacade), FelhasznaloLogic.GetFelhasznalo())).SaveBankszamla(request);
}
/// <summary>
/// Tanuló bankszámlaszámának törlése.
/// </summary>
[HttpDelete, Route("Sajat/Bankszamla")]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.BankszamlaTorlesSikeres)]
public void DeleteBankszamla()
{
((FelhasznaloFacade)Activator.CreateInstance(typeof(FelhasznaloFacade), FelhasznaloLogic.GetFelhasznalo())).DeleteBankszamla();
}
/// <summary>
/// Elérhetőség rögzítése tanulóhoz vagy gondviselőhöz.
/// </summary>
[HttpPost, Route("Sajat/Elerhetoseg")]
[IdpAuthorize(FelhasznaloSzerepkor.Tanulo, FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.ElerhetosegRogzitesSikeres)]
[SwaggerRequestExample(typeof(ElerhetosegRequestDto), typeof(ElerhetosegRequestDto))]
public void PostElerhetoseg(ElerhetosegRequestDto request)
{
((FelhasznaloFacade)Activator.CreateInstance(typeof(FelhasznaloFacade), FelhasznaloLogic.GetFelhasznalo())).SaveElerhetoseg(request);
}
/// <summary>
/// A gondviselő "Törvényes képviselő" tulajdonságának lekérdezése.
/// </summary>
[HttpGet, Route("Gondviselo/IsTorvenyesKepviselo")]
[IdpAuthorize(FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.IsTorvenyesKepviseloResponseLeiras + DescriptionOneNote.Felhasznalo)]
//[SwaggerResponseExample(HttpStatusCode.OK, typeof(bool))]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras + DescriptionLookUp.GonviseloTorolveLett, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public bool IsTorvenyesKepviselo()
{
return ((FelhasznaloFacade)Activator.CreateInstance(typeof(FelhasznaloFacade), FelhasznaloLogic.GetFelhasznalo())).IsTorvenyesKepviselo();
}
/// <summary>
/// Gondviselő 4T adatainak lekérdezése
/// </summary>
[HttpGet, Route("Sajat/GondviseloAdatlap")]
[IdpAuthorize(FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras + DescriptionLookUp.GonviseloTorolveLett, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.OK, typeof(DummyExampleProvider<FelhasznaloController, GondviseloAdatokResponseDto>))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.GondviseloAdataiResponseLeiras + DescriptionOneNote.Felhasznalo, typeof(GondviseloAdatokResponseDto))]
public GondviseloAdatokResponseDto GetGondviseloAdatlap()
{
return ((FelhasznaloFacade)Activator.CreateInstance(typeof(FelhasznaloFacade), FelhasznaloLogic.GetFelhasznalo())).GetGondviseloAdatlap();
}
/// <summary>
/// Gondviselő 4T adatainak módosítása
/// </summary>
[HttpPut, Route("Sajat/GondviseloAdatlap")]
[IdpAuthorize(FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.GondviseloAdatokRogziteseSikeres)]
[SwaggerRequestExample(typeof(GondviseloBaseAdatlapRequestDto), typeof(GondviseloBaseAdatlapRequestDto))]
public void PutGondviseloAdatlap(GondviseloBaseAdatlapRequestDto request)
{
((FelhasznaloFacade)Activator.CreateInstance(typeof(FelhasznaloFacade), FelhasznaloLogic.GetFelhasznalo())).UpdateGondviseloAdatlap(request);
}
/// <summary>
/// Gondviselő eszköz igényléshez szükséges adatainak elküldése
/// </summary>
[HttpPost, Route("Sajat/GondviseloEszkozIgenyles")]
[IdpAuthorize(FelhasznaloSzerepkor.Gondviselo)]
[SwaggerResponse(HttpStatusCode.NoContent, DescriptionLookUp.GondviseloEszkozIgenylesAdatokRogziteseSikeres)]
[SwaggerRequestExample(typeof(RegisztracioRequestDto), typeof(RegisztracioRequestDto))]
public void PostGondviseloEszkozIgenyles(RegisztracioRequestDto request)
{
((TargyiEszkozFacade)Activator.CreateInstance(typeof(TargyiEszkozFacade), FelhasznaloLogic.GetFelhasznalo())).SaveGondviseloEszkozIgenyles(request);
}
/// <summary>
/// Napi értesítés összefoglaló lekérdezése
/// </summary>
[HttpGet, Route("Sajat/NapiErtesitesOsszefoglalo")]
[SwaggerResponse(HttpStatusCode.OK, DescriptionLookUp.NapiErtesitesOsszefoglaloResponseLeiras + DescriptionOneNote.Felhasznalo, typeof(NapiErtesitesOsszefoglaloResponseDto))]
[SwaggerResponse(HttpStatusCode.NotFound, DescriptionLookUp.NemLetezoEntitasResponseLeiras, typeof(EllenorzoExceptionResponseDto))]
[SwaggerResponseExample(HttpStatusCode.NotFound, typeof(NemLetezoEntitasExample))]
public NapiErtesitesOsszefoglaloResponseDto GetNapiErtesitesOsszefoglalo()
{
return ((FelhasznaloFacade)Activator.CreateInstance(typeof(FelhasznaloFacade), FelhasznaloLogic.GetFelhasznalo())).GetNapiErtesitesOsszefoglalo();
}
}
}