Skip to content

Commit

Permalink
✨ feat: 'Criação do Controller da entidade Job junto de Endpoint para…
Browse files Browse the repository at this point in the history
… a inserção de um novo Job'
  • Loading branch information
Bruno-Camargo-V3ktor committed Sep 6, 2024
1 parent 5867446 commit dc054e3
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package dev.v3ktor.vacancymanagementa.modules.company.controllers;

import dev.v3ktor.vacancymanagementa.modules.company.entitys.JobEntity;
import dev.v3ktor.vacancymanagementa.modules.company.useCase.CreateJobUseCase;
import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController @RequestMapping("/job")
public class JobController {

// Atributos
@Autowired private CreateJobUseCase createJobUseCase;

// Endpoints
@PostMapping
public ResponseEntity< Object > create( @Valid @RequestBody JobEntity job)
{
return ResponseEntity.status(HttpStatus.CREATED ).body( createJobUseCase.execute(job) );
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package dev.v3ktor.vacancymanagementa.modules.company.entitys;

import jakarta.persistence.*;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import org.hibernate.annotations.CreationTimestamp;

Expand All @@ -15,9 +16,9 @@ public class JobEntity {
private UUID id;
private String description;
private String benefits;
private String level;
@NotBlank(message = "Esse campo é obrigatorio") private String level;

@ManyToOne() @NotNull
@ManyToOne(fetch = FetchType.LAZY) @JoinColumn( name = "company_id", nullable = false)
private CompanyEntity company;

@CreationTimestamp
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package dev.v3ktor.vacancymanagementa.modules.company.repositorys;

import dev.v3ktor.vacancymanagementa.modules.company.entitys.JobEntity;
import org.springframework.data.jpa.repository.JpaRepository;

import java.util.UUID;

public interface JobRepository extends JpaRepository<JobEntity, UUID> {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
package dev.v3ktor.vacancymanagementa.modules.company.useCase;

import dev.v3ktor.vacancymanagementa.modules.company.entitys.JobEntity;
import dev.v3ktor.vacancymanagementa.modules.company.repositorys.JobRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class CreateJobUseCase {

// Atributos
@Autowired private JobRepository jobRepository;

// Métodos
public JobEntity execute(JobEntity job)
{
return jobRepository.save( job );
}

}

0 comments on commit dc054e3

Please sign in to comment.