using JobsJobsJobs.Server.Data;
using JobsJobsJobs.Shared;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using NodaTime;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Claims;
using System.Threading.Tasks;
namespace JobsJobsJobs.Server.Areas.Api.Controllers
{
///
/// API controller for job listings
///
[Route("api/listings")]
[Authorize]
[ApiController]
public class ListingController : ControllerBase
{
///
/// The data context
///
private readonly JobsDbContext _db;
///
/// The NodaTime clock instance
///
private readonly IClock _clock;
///
/// Constructor
///
/// The data context to use for this request
/// The clock instance to use for this request
public ListingController(JobsDbContext db, IClock clock)
{
_db = db;
_clock = clock;
}
///
/// The current citizen ID
///
private CitizenId CurrentCitizenId => CitizenId.Parse(User.FindFirst(ClaimTypes.NameIdentifier)!.Value);
[HttpGet("mine")]
public async Task Mine() =>
Ok(await _db.FindListingsByCitizen(CurrentCitizenId));
}
}