working on competency api
This commit is contained in:
@@ -0,0 +1,40 @@
|
|||||||
|
package org.zaine.app.controller;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import org.springframework.web.bind.annotation.PathVariable;
|
||||||
|
import org.zaine.app.model.Competencies;
|
||||||
|
import org.zaine.app.service.CompetenciesService;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
public class CompetenciesController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private CompetenciesService competenciesService;
|
||||||
|
|
||||||
|
@GetMapping("/competencies/items")
|
||||||
|
public List<Competencies> getAllCompetencies() {
|
||||||
|
|
||||||
|
return competenciesService.getAllCompetencies();
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/competencies/item/{id}")
|
||||||
|
public Competencies getCompetencyById(@PathVariable Long id) {
|
||||||
|
return competenciesService.getCompetencyById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@PostMapping("/competencies/items/{id}/state")
|
||||||
|
public void updateCompetencyState(@RequestParam Long id, @RequestParam String newState) {
|
||||||
|
Long compId = id;
|
||||||
|
String state = newState;
|
||||||
|
|
||||||
|
//competenciesService.updateCompetencyState(id, newState);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
64
src/main/java/org/zaine/app/model/Competencies.java
Normal file
64
src/main/java/org/zaine/app/model/Competencies.java
Normal file
@@ -0,0 +1,64 @@
|
|||||||
|
package org.zaine.app.model;
|
||||||
|
|
||||||
|
import java.time.Instant;
|
||||||
|
import jakarta.persistence.Column;
|
||||||
|
import jakarta.persistence.Entity;
|
||||||
|
import jakarta.persistence.Id;
|
||||||
|
import jakarta.persistence.Table;
|
||||||
|
import jakarta.persistence.GeneratedValue;
|
||||||
|
|
||||||
|
@Entity
|
||||||
|
@Table(name = "competencies")
|
||||||
|
public class Competencies {
|
||||||
|
|
||||||
|
@Id
|
||||||
|
@GeneratedValue
|
||||||
|
@Column(name="id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Column(name="title")
|
||||||
|
private String title;
|
||||||
|
|
||||||
|
@Column(name="state")
|
||||||
|
private String state;
|
||||||
|
|
||||||
|
@Column(name="created_at")
|
||||||
|
private Instant createdAt;
|
||||||
|
|
||||||
|
@Column(name="group")
|
||||||
|
private String group;
|
||||||
|
|
||||||
|
|
||||||
|
public Long getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTitle(String title) {
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getState() {
|
||||||
|
return state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setState(String state) {
|
||||||
|
this.state = state;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Instant getCreatedAt() {
|
||||||
|
return createdAt;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getGroup() {
|
||||||
|
return group;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setGroup(String group) {
|
||||||
|
this.group = group;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
package org.zaine.app.repositories;
|
||||||
|
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
import org.zaine.app.model.Competencies;
|
||||||
|
|
||||||
|
|
||||||
|
public interface CompetenciesRepository extends JpaRepository<Competencies, Long> {
|
||||||
|
|
||||||
|
}
|
||||||
38
src/main/java/org/zaine/app/service/CompetenciesService.java
Normal file
38
src/main/java/org/zaine/app/service/CompetenciesService.java
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
package org.zaine.app.service;
|
||||||
|
|
||||||
|
import java.lang.System.Logger;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.zaine.app.model.Competencies;
|
||||||
|
import org.zaine.app.repositories.CompetenciesRepository;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class CompetenciesService {
|
||||||
|
|
||||||
|
private static final Logger logger = System.getLogger(CompetenciesService.class.getName());
|
||||||
|
|
||||||
|
private final CompetenciesRepository competenciesRepository;
|
||||||
|
|
||||||
|
public CompetenciesService(CompetenciesRepository competenciesRepository) {
|
||||||
|
this.competenciesRepository = competenciesRepository;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Competencies> getAllCompetencies() {
|
||||||
|
return competenciesRepository.findAll();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public Competencies getCompetencyById(Long id) {
|
||||||
|
// Log the method entry
|
||||||
|
|
||||||
|
logger.log(System.Logger.Level.INFO, "Entering getCompetencyById with id: " + id);
|
||||||
|
|
||||||
|
return competenciesRepository.findById(id).get();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void updateCompetencyState(Long id, String newState) {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
package org.zaine.app.service;
|
||||||
|
|
||||||
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
import org.mockito.InjectMocks;
|
||||||
|
import org.mockito.Mock;
|
||||||
|
import org.zaine.app.repositories.CompetenciesRepository;
|
||||||
|
|
||||||
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
import org.zaine.app.model.Competencies;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
import static org.junit.jupiter.api.Assertions.*;
|
||||||
|
import static org.mockito.Mockito.*;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
@ExtendWith(org.mockito.junit.jupiter.MockitoExtension.class)
|
||||||
|
public class CompetenciesServiceTest {
|
||||||
|
|
||||||
|
@InjectMocks
|
||||||
|
private CompetenciesService competenciesService;
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private CompetenciesRepository competenciesRepository;
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetAllCompetencies() {
|
||||||
|
Competencies comp1 = new Competencies();
|
||||||
|
comp1.setTitle("Competency 1");
|
||||||
|
Competencies comp2 = new Competencies();
|
||||||
|
comp2.setTitle("Competency 2");
|
||||||
|
when(competenciesRepository.findAll()).thenReturn(Arrays.asList(comp1, comp2));
|
||||||
|
|
||||||
|
java.util.List<Competencies> result = competenciesService.getAllCompetencies();
|
||||||
|
assertEquals(2, result.size());
|
||||||
|
assertSame(comp1, result.get(0));
|
||||||
|
assertSame(comp2, result.get(1));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testGetCompetencyByIdReturnsCompetency() {
|
||||||
|
Competencies comp = new Competencies();
|
||||||
|
@NotNull Long id = comp.getId();
|
||||||
|
when(competenciesRepository.findById(id)).thenReturn(Optional.of(comp));
|
||||||
|
|
||||||
|
|
||||||
|
Competencies result = competenciesService.getCompetencyById(id);
|
||||||
|
assertSame(comp, result);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user