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> Get() => await _context.JobApplications.Include(j => j.Company).ToListAsync(); [HttpPost] public async Task> Post(JobApplication job) { _context.JobApplications.Add(job); await _context.SaveChangesAsync(); return CreatedAtAction(nameof(Get), new { id = job.Id }, job); } [HttpPut("{id}")] public async Task 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(); } } }