Hong

폴더이동구현

...@@ -148,100 +148,105 @@ router.post('/delfolder', function(req, res, next) { ...@@ -148,100 +148,105 @@ router.post('/delfolder', function(req, res, next) {
148 148
149 149
150 router.post('/move', function(req, res, next) { 150 router.post('/move', function(req, res, next) {
151 - 151 + console.log(req.body);
152 - user_id = req.body.user_id; 152 + user_id = req.body.id;
153 - curPath = user_id + req.body.cur; 153 + let cur = req.body.cur;
154 - let name = req.body.mfile; 154 + curPath = user_id + cur;
155 - let newPath = req.body.newPath; 155 + let name = req.body.folder_name;
156 - let checkfolder = 'SELECT * FROM folders WHERE location = ? AND folder_name = ?;'; 156 + let newPath = user_id + req.body.newPath;
157 if (req.body.isfolder) { 157 if (req.body.isfolder) {
158 - connection.query(checkfolder, [curPath, name], function(err1, rows, fields) { 158 + let checkfolder = 'SELECT * FROM folders WHERE location = ? AND folder_name = ? AND user_id = ?;';
159 + connection.query(checkfolder, [cur, name, user_id], function(err1, rows, fields) {
160 + console.log(rows);
159 if (rows.length != 0) { 161 if (rows.length != 0) {
160 let copy_params = { 162 let copy_params = {
161 - Bucket: BUCKET_NAME + curPath, 163 + Bucket: BUCKET_NAME,
162 - CopySource: BUCKET_NAME + curPath + file + '/', 164 + CopySource: BUCKET_NAME + '/' + curPath + name + '/',
163 - Key: newPath + file + '/' 165 + Key: newPath + name + '/'
164 }; 166 };
165 -
166 let del_params = { 167 let del_params = {
167 - Bucket: BUCKET_NAME + curPath, 168 + Bucket: BUCKET_NAME,
168 - Key: file + '/' 169 + Key: curPath + name + '/'
169 }; 170 };
170 s3.copyObject(copy_params, function(err, data) { 171 s3.copyObject(copy_params, function(err, data) {
171 - console.log(err, data); 172 + if (err) {
172 - }); 173 + console.log(err, data);
173 - s3.deleteObject(del_params, function(err, data) { 174 + console.log("copy error");
174 - console.log(err, data); 175 + res.status(304).send({ error: "copy error" });
175 - });
176 - let values = [newPath, curPath, name];
177 - let updatesql = 'UPDATE folders SET location = ? WHERE location = ? AND folder_name = ?;';
178 - connection.query(updatesql, values, function(err3, result, field) {
179 - if (err3) {
180 - throw err;
181 } else { 176 } else {
182 - folders = {} 177 + s3.deleteObject(del_params, function(err, data) {
183 - connection.query(checkfolder, [cur, user_id], function(err, rows, fields) { 178 + if (err) {
184 - if (rows.length != 0) { 179 + console.log(err, data);
185 - res.status(200).send({ 180 + console.log("delete error");
186 - folders: rows, 181 + res.status(304).send({ error: "delete error" });
187 - cur: curPath
188 - })
189 } else { 182 } else {
190 - res.send({ error: "Does not exist" }); 183 + let values = [req.body.newPath, cur, name, user_id];
184 + let updatesql = 'UPDATE folders SET location = ? WHERE location = ? AND folder_name = ? AND user_id = ?;';
185 + connection.query(updatesql, values, function(err3, result, field) {
186 + if (err3) {
187 + console.log("updatesql error");
188 + res.status(304).send({ error: "updatesql error" });
189 + } else {
190 + let resultsql = 'SELECT * FROM folders WHERE location = ? AND user_id = ?;';
191 + connection.query(resultsql, [cur, user_id], function(err, rows, fields) {
192 + res.status(200).send({
193 + folders: rows
194 + });
195 + });
196 + }
197 + });
191 } 198 }
192 }); 199 });
193 } 200 }
194 }); 201 });
195 -
196 -
197 } else { 202 } else {
198 - res.send({ error: "Does not exist" }); 203 + console.log("Does not exist");
204 + res.status(304).send({ error: "Does not exist" });
199 } 205 }
200 }); 206 });
201 } else { 207 } else {
202 - let checkfile = 'SELECT * FROM files WHERE location = ? AND file_name = ?'; 208 + let checkfile = 'SELECT * FROM files WHERE location = ? AND file_name = ? AND user_id = ?';
203 - 209 + connection.query(checkfile, [curPath, name, user_id], function(err1, rows, fields) {
204 - connection.query(checkfile, [curPath, name], function(err1, rows, fields) {
205 if (rows.length != 0) { 210 if (rows.length != 0) {
206 let copy_params = { 211 let copy_params = {
207 - Bucket: BUCKET_NAME + curPath, 212 + Bucket: BUCKET_NAME,
208 - CopySource: BUCKET_NAME + curPath + file, 213 + CopySource: BUCKET_NAME + '/' + curPath + file,
209 Key: newPath + file 214 Key: newPath + file
210 }; 215 };
211 -
212 let del_params = { 216 let del_params = {
213 - Bucket: BUCKET_NAME + curPath, 217 + Bucket: BUCKET_NAME,
214 - Key: file 218 + Key: curPath + file
215 }; 219 };
216 s3.copyObject(copy_params, function(err, data) { 220 s3.copyObject(copy_params, function(err, data) {
217 - console.log(err, data); 221 + if (err) {
218 - }); 222 + console.log(err, data);
219 - s3.deleteObject(del_params, function(err, data) { 223 + res.status(304).send({ error: "copy error" });
220 - console.log(err, data);
221 - });
222 - let values = [newPath, curPath, name];
223 - let updatesql = 'UPDATE files SET location = ? WHERE location = ? AND file_name = ?;';
224 - connection.query(updatesql, values, function(err3, result, field) {
225 - if (err3) {
226 - throw err;
227 } else { 224 } else {
228 - folders = {} 225 + s3.deleteObject(del_params, function(err, data) {
229 - connection.query(checkfolder, [cur, user_id], function(err, rows, fields) { 226 + if (err) {
230 - if (rows.length != 0) { 227 + console.log(err, data);
231 - res.status(200).send({ 228 + res.status(304).send({ error: "delete error" });
232 - folders: rows,
233 - cur: curPath
234 - })
235 } else { 229 } else {
236 - res.send({ error: "Does not exist" }); 230 + let values = [newPath, cur, name, user_id];
231 + let updatesql = 'UPDATE files SET location = ? WHERE location = ? AND file_name = ? AND user_id = ?;';
232 + connection.query(updatesql, values, function(err3, result, field) {
233 + if (err3) {
234 + res.status(304).send({ error: "updatesql error" });
235 + } else {
236 + let resultsql = 'SELECT * FROM folders WHERE location = ? AND user_id = ?;';
237 + connection.query(resultsql, [cur, user_id], function(err, rows, fields) {
238 + res.status(200).send({
239 + folders: rows
240 + });
241 + });
242 + }
243 + });
237 } 244 }
238 }); 245 });
239 } 246 }
240 }); 247 });
241 -
242 -
243 } else { 248 } else {
244 - res.send({ error: "Does not exist" }); 249 + res.status(304).send({ error: "Does not exist" });
245 } 250 }
246 }); 251 });
247 252
......
...@@ -27,8 +27,14 @@ function makeFolder(folderData) { ...@@ -27,8 +27,14 @@ function makeFolder(folderData) {
27 return axios.post('/api/folder/makefolder', folderData); 27 return axios.post('/api/folder/makefolder', folderData);
28 } 28 }
29 29
30 -function deleteFolder(folderData){ 30 +function deleteFolder(folderData) {
31 return axios.post('/api/folder/delfolder', folderData); 31 return axios.post('/api/folder/delfolder', folderData);
32 } 32 }
33 33
34 -export { registerUser, loginUser, folder, makeFolder, deleteFolder };
...\ No newline at end of file ...\ No newline at end of file
34 +function moveFolder(folderData) {
35 + return axios.post('/api/folder/move', folderData);
36 +}
37 +
38 +
39 +
40 +export { registerUser, loginUser, folder, makeFolder, deleteFolder, moveFolder };
...\ No newline at end of file ...\ No newline at end of file
......
...@@ -28,27 +28,7 @@ ...@@ -28,27 +28,7 @@
28 <v-list-item-content > 28 <v-list-item-content >
29 <v-list-item-title v-text="item.folder_name"></v-list-item-title> 29 <v-list-item-title v-text="item.folder_name"></v-list-item-title>
30 </v-list-item-content> 30 </v-list-item-content>
31 - </v-list-item> 31 + <v-dialog
32 -
33 -
34 - <v-menu
35 - v-model="showMenu"
36 - :position-x="x"
37 - :position-y="y"
38 - absolute
39 - offset-y
40 - >
41 - <v-list dense>
42 - <v-list-item @click.prevent="dialog2 = !dialog2">
43 - <v-list-item-title>이동</v-list-item-title>
44 - </v-list-item>
45 - <v-list-item @click.prevent="deleteF">
46 - <v-list-item-title>삭제</v-list-item-title>
47 - </v-list-item>
48 - </v-list>
49 - </v-menu>
50 -
51 - <v-dialog
52 v-model="dialog2" 32 v-model="dialog2"
53 width="500px" 33 width="500px"
54 > 34 >
...@@ -71,12 +51,28 @@ ...@@ -71,12 +51,28 @@
71 >Cancel</v-btn> 51 >Cancel</v-btn>
72 <v-btn 52 <v-btn
73 text 53 text
74 - @click="" 54 + @click="transferF(item.folder_name)"
75 >Move</v-btn> 55 >Move</v-btn>
76 </v-card-actions> 56 </v-card-actions>
77 </v-card> 57 </v-card>
78 </v-dialog> 58 </v-dialog>
79 - 59 + <v-menu
60 + v-model="showMenu"
61 + :position-x="x"
62 + :position-y="y"
63 + absolute
64 + offset-y
65 + >
66 + <v-list dense>
67 + <v-list-item @click.prevent="dialog2 = !dialog2">
68 + <v-list-item-title>이동</v-list-item-title>
69 + </v-list-item>
70 + <v-list-item @click.prevent="deleteF(item.folder_name)">
71 + <v-list-item-title>삭제</v-list-item-title>
72 + </v-list-item>
73 + </v-list>
74 + </v-menu>
75 + </v-list-item>
80 76
81 <v-divider inset></v-divider> 77 <v-divider inset></v-divider>
82 <v-subheader inset>Files</v-subheader> 78 <v-subheader inset>Files</v-subheader>
...@@ -172,7 +168,7 @@ ...@@ -172,7 +168,7 @@
172 </div> 168 </div>
173 </template> 169 </template>
174 <script> 170 <script>
175 -import { folder, makeFolder, deleteFolder } from '../api/index'; 171 +import { folder, makeFolder, deleteFolder, moveFolder } from '../api/index';
176 import Axios from 'axios'; 172 import Axios from 'axios';
177 export default { 173 export default {
178 data() { 174 data() {
...@@ -277,6 +273,26 @@ import Axios from 'axios'; ...@@ -277,6 +273,26 @@ import Axios from 'axios';
277 console.log(error.response.data); 273 console.log(error.response.data);
278 } 274 }
279 }, 275 },
276 + async transferF(folderName){
277 + try {
278 + const cData = {
279 + id: this.$store.state.id,
280 + cur : this.$store.state.cur,
281 + folder_name: folderName,
282 + isfolder: true,
283 + newPath: this.foldername
284 + }
285 + const response = await moveFolder(cData);
286 + console.log(response);
287 + this.$store.commit('setFolder', response.data.folders);
288 + } catch (error) {
289 + console.log("에러");
290 + console.log(error.response.data);
291 + } finally{
292 + this.initFolderName();
293 + this.dialog2 = false;
294 + }
295 + },
280 show (e) { 296 show (e) {
281 e.preventDefault() 297 e.preventDefault()
282 this.showMenu = false 298 this.showMenu = false
......