From 56df98ce4952239fbf7d0e99dbeb0e5c71531d6f Mon Sep 17 00:00:00 2001
From: sean.zhou <sean.zhou@dji.com>
Date: Fri, 18 Nov 2022 18:29:06 +0800
Subject: [PATCH] initial v1.3.0

---
 src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java |   46 ++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 38 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java b/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
index 5af35a3..c4934ca 100644
--- a/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
+++ b/src/main/java/com/dji/sample/wayline/controller/WaylineFileController.java
@@ -3,19 +3,21 @@
 import com.dji.sample.common.model.CustomClaim;
 import com.dji.sample.common.model.PaginationData;
 import com.dji.sample.common.model.ResponseResult;
-import com.dji.sample.component.oss.model.AliyunOSSConfiguration;
-import com.dji.sample.wayline.model.WaylineFileDTO;
-import com.dji.sample.wayline.model.WaylineFileUploadDTO;
-import com.dji.sample.wayline.model.WaylineQueryParam;
+import com.dji.sample.wayline.model.dto.WaylineFileDTO;
+import com.dji.sample.wayline.model.dto.WaylineFileUploadDTO;
+import com.dji.sample.wayline.model.param.WaylineQueryParam;
 import com.dji.sample.wayline.service.IWaylineFileService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
 import java.net.URL;
+import java.sql.SQLException;
 import java.util.List;
+import java.util.Objects;
 
 import static com.dji.sample.component.AuthInterceptor.TOKEN_CLAIM;
 
@@ -70,12 +72,10 @@
     public void getFileUrl(@PathVariable(name = "workspace_id") String workspaceId,
                                 @PathVariable(name = "wayline_id") String waylineId, HttpServletResponse response) {
 
-        WaylineFileDTO wayline = waylineFileService.getWaylineByWaylineId(workspaceId, waylineId);
-        URL url = waylineFileService.getObjectUrl(AliyunOSSConfiguration.bucket, wayline.getObjectKey());
-
         try {
+            URL url = waylineFileService.getObjectUrl(workspaceId, waylineId);
             response.sendRedirect(url.toString());
-        } catch (Exception e) {
+        } catch (IOException | SQLException e) {
             e.printStackTrace();
         }
     }
@@ -147,4 +147,34 @@
 
         return ResponseResult.success(existNamesList);
     }
+
+    /**
+     * Delete the wayline file in the workspace according to the wayline id.
+     * @param workspaceId
+     * @param waylineId
+     * @return
+     */
+    @DeleteMapping("/{workspace_id}/waylines/{wayline_id}")
+    public ResponseResult deleteWayline(@PathVariable(name = "workspace_id") String workspaceId,
+                                        @PathVariable(name = "wayline_id") String waylineId) {
+        boolean isDel = waylineFileService.deleteByWaylineId(workspaceId, waylineId);
+        return isDel ? ResponseResult.success() : ResponseResult.error("Failed to delete wayline.");
+    }
+
+    /**
+     * Import kmz wayline files.
+     * @param file
+     * @return
+     */
+    @PostMapping("/{workspace_id}/waylines/file/upload")
+    public ResponseResult importKmzFile(HttpServletRequest request, MultipartFile file) {
+        if (Objects.isNull(file)) {
+            return ResponseResult.error("No file received.");
+        }
+        CustomClaim customClaim = (CustomClaim)request.getAttribute(TOKEN_CLAIM);
+        String workspaceId = customClaim.getWorkspaceId();
+        String creator = customClaim.getUsername();
+        waylineFileService.importKmzFile(file, workspaceId, creator);
+        return ResponseResult.success();
+    }
 }

--
Gitblit v1.9.3