WIP
This commit is contained in:
parent
1e38efaa63
commit
c5eeabbdff
12
requests/employee/createEmployee.http
Normal file
12
requests/employee/createEmployee.http
Normal file
@ -0,0 +1,12 @@
|
||||
POST https://employee.szut.dev/employees
|
||||
Authorization: Bearer {{auth_token}}
|
||||
Content-Type: application/json
|
||||
|
||||
{
|
||||
"firstName": "yomom",
|
||||
"lastName": "yomom",
|
||||
"street": "yomom",
|
||||
"postcode": "yomom",
|
||||
"city": "yomom",
|
||||
"phone": "yomom"
|
||||
}
|
2
requests/employee/deleteEmployee.http
Normal file
2
requests/employee/deleteEmployee.http
Normal file
@ -0,0 +1,2 @@
|
||||
DELETE https://employee.szut.dev/employees/310
|
||||
Authorization: Bearer {{auth_token}}
|
2
requests/employee/getAllEmployees.http
Normal file
2
requests/employee/getAllEmployees.http
Normal file
@ -0,0 +1,2 @@
|
||||
GET https://employee.szut.dev/employees
|
||||
Authorization: Bearer {{auth_token}}
|
2
requests/employee/getEmployee.http
Normal file
2
requests/employee/getEmployee.http
Normal file
@ -0,0 +1,2 @@
|
||||
GET https://employee.szut.dev/employees/312
|
||||
Authorization: Bearer {{auth_token}}
|
2
requests/project/addEmployeeToProject.http
Normal file
2
requests/project/addEmployeeToProject.http
Normal file
@ -0,0 +1,2 @@
|
||||
POST http://localhost:8080/projects/1/employees/1
|
||||
Authorization: Bearer {{auth_token}}
|
@ -1,4 +1,4 @@
|
||||
package de.szut.lf8_starter.project.action;
|
||||
package de.szut.lf8_starter.project.action.crud;
|
||||
|
||||
import de.szut.lf8_starter.project.ProjectEntity;
|
||||
import de.szut.lf8_starter.project.ProjectMapper;
|
@ -1,4 +1,4 @@
|
||||
package de.szut.lf8_starter.project.action;
|
||||
package de.szut.lf8_starter.project.action.crud;
|
||||
|
||||
import de.szut.lf8_starter.project.ProjectMapper;
|
||||
import de.szut.lf8_starter.project.ProjectService;
|
@ -1,4 +1,4 @@
|
||||
package de.szut.lf8_starter.project.action;
|
||||
package de.szut.lf8_starter.project.action.crud;
|
||||
|
||||
import de.szut.lf8_starter.project.ProjectEntity;
|
||||
import de.szut.lf8_starter.project.ProjectMapper;
|
||||
@ -11,7 +11,10 @@ import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
||||
import io.swagger.v3.oas.annotations.responses.ApiResponses;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Optional;
|
||||
|
@ -1,4 +1,4 @@
|
||||
package de.szut.lf8_starter.project.action;
|
||||
package de.szut.lf8_starter.project.action.crud;
|
||||
|
||||
import de.szut.lf8_starter.project.ProjectEntity;
|
||||
import de.szut.lf8_starter.project.ProjectMapper;
|
49
src/main/java/de/szut/lf8_starter/project/action/employee/AddEmployeeToProjectAction.java
Normal file
49
src/main/java/de/szut/lf8_starter/project/action/employee/AddEmployeeToProjectAction.java
Normal file
@ -0,0 +1,49 @@
|
||||
package de.szut.lf8_starter.project.action.employee;
|
||||
|
||||
import de.szut.lf8_starter.project.ProjectEntity;
|
||||
import de.szut.lf8_starter.project.ProjectService;
|
||||
import de.szut.lf8_starter.security.AccessTokenService;
|
||||
import org.springframework.http.*;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import java.util.Optional;
|
||||
|
||||
@RestController
|
||||
public class AddEmployeeToProjectAction {
|
||||
private final ProjectService projectService;
|
||||
private final AccessTokenService accessTokenService;
|
||||
private final RestTemplate restTemplate;
|
||||
|
||||
public AddEmployeeToProjectAction(ProjectService projectService, AccessTokenService accessTokenService, RestTemplate restTemplate) {
|
||||
this.projectService = projectService;
|
||||
this.accessTokenService = accessTokenService;
|
||||
this.restTemplate = restTemplate;
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/projects/{projectId}/employees/{employeeId}")
|
||||
public ResponseEntity<Object> create(@PathVariable Long projectId, @PathVariable Long employeeId) {
|
||||
Optional<ProjectEntity> project = this.projectService.findById(projectId);
|
||||
|
||||
if (project.isEmpty()) {
|
||||
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
|
||||
}
|
||||
|
||||
String accessToken = this.accessTokenService.getAccessToken();
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setBearerAuth(accessToken);
|
||||
|
||||
HttpEntity<String> requestEntity = new HttpEntity<>(headers);
|
||||
|
||||
String url = "https://employee.szut.dev/employees/" + employeeId;
|
||||
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, requestEntity, String.class);
|
||||
|
||||
System.out.println("Employee Data: " + response.getBody());
|
||||
|
||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||
}
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package de.szut.lf8_starter.project.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonNaming;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
@JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class)
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
@Getter
|
||||
@Setter
|
||||
public class BearerTokenResponseDto {
|
||||
private String accessToken;
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package de.szut.lf8_starter.security;
|
||||
|
||||
import de.szut.lf8_starter.project.dto.BearerTokenResponseDto;
|
||||
import org.springframework.core.ParameterizedTypeReference;
|
||||
import org.springframework.http.*;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import java.util.Objects;
|
||||
|
||||
@Service
|
||||
public class AccessTokenService {
|
||||
private final RestTemplate restTemplate;
|
||||
|
||||
public AccessTokenService(RestTemplate restTemplate) {
|
||||
this.restTemplate = restTemplate;
|
||||
}
|
||||
|
||||
public String getAccessToken() {
|
||||
String url = "https://keycloak.szut.dev/auth/realms/szut/protocol/openid-connect/token";
|
||||
|
||||
HttpHeaders headers = new HttpHeaders();
|
||||
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
|
||||
|
||||
String body = "grant_type=password&client_id=employee-management-service&username=user&password=test";
|
||||
|
||||
HttpEntity<String> requestEntity = new HttpEntity<>(body, headers);
|
||||
|
||||
ResponseEntity<BearerTokenResponseDto> response = this.restTemplate.exchange(
|
||||
url, HttpMethod.POST, requestEntity, new ParameterizedTypeReference<>() {
|
||||
}
|
||||
);
|
||||
|
||||
return Objects.requireNonNull(response.getBody()).getAccessToken();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user