023-60238/MyProject

/src/main/java/com/qa/test/ApiTest.java
package com.qa.test;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

import java.io.IOException;

public class ApiTest {

public static void main(String[] args) throws IOException {
CloseableHttpClient httpClient = HttpClients.createDefault();
HttpGet httpGet = new HttpGet("http://localhost:8080/api/user");
CloseableHttpResponse response = httpClient.execute(httpGet);

System.out.println("Response status: " + response.getStatusLine());

if (response.getStatusLine().getStatusCode() == 200) {
String responseBody = EntityUtils.toString(response.getEntity());
ObjectMapper objectMapper = new ObjectMapper();
User user = objectMapper.readValue(responseBody, User.class);
System.out.println(user);
} else {
System.out.println("Failed to fetch user data: " + response.getStatusLine().toString());
}

httpGet.releaseConnection();
httpClient.close();
}

public static class User {
private String id;
private String firstName;
private String lastName;

// Getters and setters
}
}

/src/main/java/com/qa/test/UserController.java
package com.qa.test;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/api/user")
public class UserController {
@Autowired
private UserService userService;

@GetMapping
public ResponseEntity<List<User>> getAllUsers() {
return ResponseEntity.ok(userService.getAllUsers());
}

@GetMapping("/{id}")
public ResponseEntity<User> getUserById(@PathVariable("id") String id) {
return ResponseEntity.ok(userService.getUserById(id));
}

@PostMapping
public ResponseEntity<User> createUser(@RequestBody User user) {
return ResponseEntity.ok(userService.createUser(user));
}

@PutMapping("/{id}")
public ResponseEntity<User> updateUser(@PathVariable("id") String id, @RequestBody User user) {
return ResponseEntity.ok(userService.updateUser(id, user));
}

@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteUser(@PathVariable("id") String id) {
userService.deleteUser(id);
return ResponseEntity.ok().build();
}
}

/src/main/java/com/qa/test/UserController.java
package com.qa.test;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

@RestController
@RequestMapping("/api/user")
public class UserController {
@Autowired
private UserService userService;

@PostMapping
public ResponseEntity<User> createUser(@RequestParam("file") MultipartFile file) throws IOException {
if (!file.isEmpty()) {
User user = new User();
user.setId(file.getOriginalFilename().split("\\.")[0]);
user.setFirstName(file.getOriginalFilename().split("\\.")[1]);
user.setLastName(file.getOriginalFilename().split("\\.")[2]);
userService.createUser(user);
return ResponseEntity.ok(user);
} else {
return ResponseEntity.badRequest().build();
}
}

@GetMapping("/{id}")
public ResponseEntity<User> getUserById(@PathVariable("id") String id) {
return ResponseEntity.ok(userService.getUserById(id));
}

@GetMapping
public ResponseEntity<List<User>> getAllUsers() {
return ResponseEntity.ok(userService.getAllUsers());
}

@PutMapping("/{id}")
public ResponseEntity<User> updateUser(@PathVariable("id") String id, @RequestBody User user) {
return ResponseEntity.ok(userService.updateUser(id, user));
}

@DeleteMapping("/{id}")
public ResponseEntity<Void> deleteUser(@PathVariable("id") String id) {
userService.deleteUser(id);
return ResponseEntity.ok().build();
}
}

/src/main/java/com/qa/test/UserService.java
package com.qa.test;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

@Service
public class UserService {
@Autowired
private UserRepository userRepository;

public List<User> getAllUsers() {
return userRepository.findAll();
}

public User getUserById(String id) {
return userRepository.findById(id).orElse(null);
}

public User createUser(User user) {
return userRepository.save(user);
}

public User updateUser(String id, User user) {
User existingUser = userRepository.findById(id).orElse(null);
if (existingUser != null) {
return userRepository.save(new User(id, user.getFirstName(), user.getLastName()));
} else {
return null;
}
}

public void deleteUser(String id) {
userRepository.deleteById(id);
}
}

/src/main/java/com/qa/test/ServiceConfig.java
package com.qa.test;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

@RestController
@RequestMapping("/api/user")
public class UserController {
@Autowired
private UserService userService;

@PostMapping
public ResponseEntity<User> createUser(@RequestBody User user) {
return ResponseEntity.ok(userService.createUser(user));
}

@GetMapping("/{id}")
public ResponseEntity<User> getUserById(@PathVariable("id") String id) {
return ResponseEntity.ok(userService.getUserById(id));
}

@GetMapping
public ResponseEntity<List<User>> getAllUsers() {
return ResponseEntity.ok(userService.getAllUsers());
}