Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagejava
themeEmacs
titleDocumentVersionController.java
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;

import java.util.*;
import java.util.stream.Collectors;

@Slf4j
@RequiredArgsConstructor
@Controller
public class DocumentVersionController {
	private final DocumentVersionService documentVersionService;


	/**
     * 문서 버전 목록 가져오기
     */
    @PostMapping("/getDocumentVersionList")
    public ResponseEntity<String> getDocumentVersionList(@RequestBody Map<String, Object> request) throws JsonProcessingException {
        String id = (String) request.get("id");
        
		List<DocumentVersion>List<DocumentVersionModel> documentVersionListdocumentVersionModelList = documentVersionService.getDocumentVersions(id);
        List<Map<String, Object>> formattedData = documentVersionListdocumentVersionModelList.stream().map(version -> {
            Map<String, Object> versionData = new HashMap<>();
            versionData.put("id", version.getId());
            versionData.put("date", version.getCreatedAt());
            versionData.put("author", version.getUsername());
            return versionData;
        }).collect(Collectors.toList());

        ObjectMapper objectMapper = new ObjectMapper();
        String jsonResponse = objectMapper.writeValueAsString(formattedData);

        return ResponseEntity.ok()
			.header("Content-Type", "application/json; charset=UTF-8")
			.body(jsonResponse);
    }

    /**
     * 문서 버전 데이터 가져오기
     */
    @PostMapping("/getDocumentVersionData")
    public String getDocumentVersionData(@RequestBody Map<String, Object> request) {
        ObjectMapper objectMapper = new ObjectMapper();
        String id = (String) request.get("id");
        String json = documentVersionService.getDocumentVersionJson(id);
 		return ResponseEntity.ok()
				.header("Content-Type", "application/json; charset=UTF-8")
				.body(json);
    }

    /**
     * 문서 버전 데이터 삭제
     */
    @DeleteMapping("/getDocumentVersionData")
    public ResponseEntity<Map<String, Object>> deleteDocumentVersionData(@RequestBody Map<String, Object> request) {
        String id = (String) request.get("id");
        documentVersionService.deleteDocumentVersion(id);
        return ResponseEntity.ok(Map.of("message", "Document deleted successfully."));  
    }
}

...