package com.std.sbb;
import lombok.*;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.*;
import java.lang.*;
@Controller
public class WarehouseController {
private int lastId;
private List<WarehouseItemBox> itemBox;
private String reMessage;
private int i;
WarehouseController(){
lastId = 0;
itemBox = new ArrayList<>();
reMessage = "initialized";
// System.out.println(reMessage +" \t "+ lastId);
}
/*
http://localhost:8080/warehouse/add?id=1&type=dd&desc=no comment
*/
// @RequestMapping("/warehouse/add")
@RequestMapping(value = "/warehouse/add", method = RequestMethod.GET)
// @GetMapping("/warehouse/add")
@ResponseBody
public String addItemWarehouse(
// @RequestParam(value = "id", required = false) index
// @RequestParam("id") Integer num,
@RequestParam("type") String type,
@RequestParam("desc") String desc
// @RequestParam(value = "date", required = false) Date date
){
// if(num)
if(!type.trim().isEmpty() && !desc.trim().isEmpty()){
/* int id;
String itemType;
String itemDesc;
Date storeDate;
//Date deliveryDate;
*/
lastId++;
Date sdate = new Date();
WarehouseItemBox item = new WarehouseItemBox(lastId,type,desc,sdate);
itemBox.add(item);
reMessage = sdate + "\t Now it is stored : " + lastId;
}else{
reMessage = "double check parameter";
}
System.out.println(reMessage);
return String.format(reMessage);
}
@GetMapping("/warehouse/list1")
@ResponseBody
public List<WarehouseItemBox> getItem1() {
System.out.println(itemBox);
return itemBox;
// return list object;
}
@GetMapping("/warehouse/list2")
@ResponseBody
public List<WarehouseItemBox> getItem2() {
if(itemBox != null //NPE(NullPointerException) 방지용
&& !itemBox.isEmpty()) {
return itemBox;
}else{
return Collections.emptyList();// null 대신 빈 리스트를 반환하면 호출 측에서 NPE 방지 가능
}
}
@GetMapping("/warehouse/list3")
@ResponseBody
public ResponseEntity<?> getItem3() {
if (itemBox.isEmpty()) {
// 204 No Content
return ResponseEntity.noContent().build();
}
Map<String, Object> body = new HashMap<>();//new HashMap<String, Integer>(), new HashMap<>()
//body.put("timestamp", new Date());
//body.put("total", itemBox.size());
body.put("Stored items", itemBox);
return ResponseEntity.ok(body);
}
@GetMapping("/warehouse/list4")
@ResponseBody
public String getItem4(){// 문제가 많아
if(!itemBox.isEmpty()) {
Date sdate = new Date();
reMessage = sdate + "\t total "+itemBox.size()+" stored.\r";
for(int i = 0; i <= itemBox.size(); i++){
System.out.println(itemBox);
this.i = itemBox.indexOf(i);
reMessage = reMessage+"\r"+String.valueOf(this.i);
}
// reMessage = "there is nothing in the warehouse";
}else{
reMessage = "there is nothing in the warehouse";
}
return reMessage;
}
@GetMapping("item/edit")
@ResponseBody
public String modifyItem(
@RequestParam("type") int id,
@RequestParam("type") String type,
@RequestParam("desc") String desc
){
if(id == null
|| id.isEmpty()
|| type == null
|| type.trim().isEmpty()
|| desc == null
|| desc.trim().isEmpty(){
/*itemBox 상태 점검 논리*/
return reMessage;
}else{
return reMessage;
}
}
}
//public class GlobalExceptionHandler {
//// @ExceptionHandler(MissingServletRequestParameterException.class)
//// public ResponseEntity<String> handleMissingParams(MissingServletRequestParameterException ex) {
//// return ResponseEntity
//// .badRequest()
//// .body("필수 파라미터 '" + ex.getParameterName() + "'이(가) 없습니다.");
//// }
//}
//@GetMapping("/api/test")
//public String test(@RequestParam(required = false) String name) {
// return name != null ? "Hello, " + name : "Hello, stranger!";
//}
//========================================
package com.std.sbb;
import lombok.*;
import java.util.Date;
@AllArgsConstructor
@Getter
@Setter
@ToString
public class WarehouseItemBox {
int id;
String itemType;
String itemDesc;
Date storeDate;
// Date deliveryDate;
}
to be continued...텍스트