64 lines
2.2 KiB
C#
64 lines
2.2 KiB
C#
using Microsoft.AspNetCore.Authorization;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.eShopOnContainers.Services.Locations.API.Infrastructure.Services;
|
|
using Microsoft.eShopOnContainers.Services.Locations.API.ViewModel;
|
|
using System;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace Locations.API.Controllers
|
|
{
|
|
[Route("api/v1/[controller]")]
|
|
[Authorize]
|
|
public class LocationsController : ControllerBase
|
|
{
|
|
private readonly ILocationsService _locationsService;
|
|
private readonly IIdentityService _identityService;
|
|
|
|
public LocationsController(ILocationsService locationsService, IIdentityService identityService)
|
|
{
|
|
_locationsService = locationsService ?? throw new ArgumentNullException(nameof(locationsService));
|
|
_identityService = identityService ?? throw new ArgumentNullException(nameof(identityService));
|
|
}
|
|
|
|
//GET api/v1/[controller]/user/1
|
|
[Route("user/{userId:guid}")]
|
|
[HttpGet]
|
|
public async Task<IActionResult> GetUserLocation(Guid userId)
|
|
{
|
|
var userLocation = await _locationsService.GetUserLocation(userId.ToString());
|
|
return Ok(userLocation);
|
|
}
|
|
|
|
//GET api/v1/[controller]/
|
|
[Route("")]
|
|
[HttpGet]
|
|
public async Task<IActionResult> GetAllLocations()
|
|
{
|
|
var locations = await _locationsService.GetAllLocation();
|
|
return Ok(locations);
|
|
}
|
|
|
|
//GET api/v1/[controller]/1
|
|
[Route("{locationId}")]
|
|
[HttpGet]
|
|
public async Task<IActionResult> GetLocation(int locationId)
|
|
{
|
|
var location = await _locationsService.GetLocation(locationId);
|
|
return Ok(location);
|
|
}
|
|
|
|
//POST api/v1/[controller]/
|
|
[Route("")]
|
|
[HttpPost]
|
|
public async Task<IActionResult> CreateOrUpdateUserLocation([FromBody]LocationRequest newLocReq)
|
|
{
|
|
var userId = _identityService.GetUserIdentity();
|
|
var result = await _locationsService.AddOrUpdateUserLocation(userId, newLocReq);
|
|
|
|
return result ?
|
|
(IActionResult)Ok() :
|
|
(IActionResult)BadRequest();
|
|
}
|
|
}
|
|
}
|