20250724 - 학습일지

창훈·2025년 7월 25일
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...텍스트

profile
한줄소개불가

0개의 댓글