45 lines
1.5 KiB
C#
45 lines
1.5 KiB
C#
using JobTrackerApi.Data;
|
|
using JobTrackerApi.Models;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.EntityFrameworkCore;
|
|
|
|
namespace JobTrackerApi.Controllers
|
|
{
|
|
[ApiController]
|
|
[Route("api/[controller]")]
|
|
public class JobApplicationsController : ControllerBase
|
|
{
|
|
private readonly JobTrackerContext _context;
|
|
public JobApplicationsController(JobTrackerContext context) => _context = context;
|
|
|
|
[HttpGet]
|
|
public async Task<IEnumerable<JobApplication>> Get() =>
|
|
await _context.JobApplications.Include(j => j.Company).ToListAsync();
|
|
|
|
[HttpPost]
|
|
public async Task<ActionResult<JobApplication>> Post(JobApplication job)
|
|
{
|
|
_context.JobApplications.Add(job);
|
|
await _context.SaveChangesAsync();
|
|
return CreatedAtAction(nameof(Get), new { id = job.Id }, job);
|
|
}
|
|
|
|
[HttpPut("{id}")]
|
|
public async Task<IActionResult> Put(int id, JobApplication updatedJob)
|
|
{
|
|
var job = await _context.JobApplications.FindAsync(id);
|
|
if (job == null) return NotFound();
|
|
|
|
job.JobTitle = updatedJob.JobTitle;
|
|
job.Status = updatedJob.Status;
|
|
job.ResponseReceived = updatedJob.ResponseReceived;
|
|
job.ResponseDate = updatedJob.ResponseDate;
|
|
job.Notes = updatedJob.Notes;
|
|
job.CoverLetterText = updatedJob.CoverLetterText;
|
|
job.JobUrl = updatedJob.JobUrl;
|
|
await _context.SaveChangesAsync();
|
|
|
|
return NoContent();
|
|
}
|
|
}
|
|
} |