Skip to content

Commit a718cee

Browse files
committed
refactor(serverHandler): extract mutate flag to responseData
1 parent e2961be commit a718cee

File tree

2 files changed

+48
-22
lines changed

2 files changed

+48
-22
lines changed

src/serverHandler/main.go

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -89,24 +89,22 @@ func (h *handler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
8989
h.cors(w, r)
9090
}
9191

92-
switch {
93-
case r.URL.RawQuery == "upload":
94-
if data.CanUpload && r.Method == http.MethodPost {
95-
h.saveUploadFiles(h.root+data.handlerReqPath, data.CanDelete, data.AliasSubItems, r)
96-
}
97-
http.Redirect(w, r, r.URL.Path, http.StatusFound)
98-
return
99-
case strings.HasPrefix(r.URL.RawQuery, "mkdir"):
100-
if data.CanMkdir {
101-
h.errHandler.LogError(r.ParseForm())
102-
h.mkdirs(h.root+data.handlerReqPath, r.Form["name"], data.AliasSubItems)
103-
}
104-
http.Redirect(w, r, r.URL.Path, http.StatusFound)
105-
return
106-
case strings.HasPrefix(r.URL.RawQuery, "delete"):
107-
if data.CanDelete {
108-
h.errHandler.LogError(r.ParseForm())
109-
h.deleteItems(h.root+data.handlerReqPath, r.Form["name"], data.AliasSubItems)
92+
if data.IsMutate {
93+
switch {
94+
case data.IsUpload:
95+
if data.CanUpload && r.Method == http.MethodPost {
96+
h.saveUploadFiles(h.root+data.handlerReqPath, data.CanDelete, data.AliasSubItems, r)
97+
}
98+
case data.IsMkdir:
99+
if data.CanMkdir {
100+
h.errHandler.LogError(r.ParseForm())
101+
h.mkdirs(h.root+data.handlerReqPath, r.Form["name"], data.AliasSubItems)
102+
}
103+
case data.IsDelete:
104+
if data.CanDelete {
105+
h.errHandler.LogError(r.ParseForm())
106+
h.deleteItems(h.root+data.handlerReqPath, r.Form["name"], data.AliasSubItems)
107+
}
110108
}
111109
http.Redirect(w, r, r.URL.Path, http.StatusFound)
112110
return

src/serverHandler/responseData.go

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,12 @@ type responseData struct {
5050
CanArchive bool
5151
CanCors bool
5252
NeedAuth bool
53+
54+
IsUpload bool
55+
IsMkdir bool
56+
IsDelete bool
57+
IsMutate bool
58+
WantJson bool
5359
}
5460

5561
func isSlash(c rune) bool {
@@ -264,7 +270,7 @@ func (h *handler) stateIndexFile(rawReqPath, baseDir string, baseItem os.FileInf
264270
return nil, nil, nil
265271
}
266272

267-
func (h *handler) getResponseData(r *http.Request) (data *responseData) {
273+
func (h *handler) getResponseData(r *http.Request) *responseData {
268274
requestUri := r.URL.Path
269275
tailSlash := requestUri[len(requestUri)-1] == '/'
270276

@@ -338,7 +344,25 @@ func (h *handler) getResponseData(r *http.Request) (data *responseData) {
338344
canCors := h.getCanCors(rawReqPath, reqFsPath)
339345
needAuth := h.getNeedAuth(rawReqPath, reqFsPath)
340346

341-
data = &responseData{
347+
rawQuery := r.URL.RawQuery
348+
isUpload := false
349+
isMkdir := false
350+
isDelete := false
351+
isMutate := false
352+
switch {
353+
case strings.HasPrefix(rawQuery, "upload") && r.Method == http.MethodPost:
354+
isUpload = true
355+
isMutate = true
356+
case strings.HasPrefix(rawQuery, "mkdir"):
357+
isMkdir = true
358+
isMutate = true
359+
case strings.HasPrefix(r.URL.RawQuery, "delete"):
360+
isDelete = true
361+
isMutate = true
362+
}
363+
wantJson := strings.Contains(rawQuery, "json")
364+
365+
return &responseData{
342366
rawReqPath: rawReqPath,
343367
handlerReqPath: reqPath,
344368

@@ -364,7 +388,11 @@ func (h *handler) getResponseData(r *http.Request) (data *responseData) {
364388
CanArchive: canArchive,
365389
CanCors: canCors,
366390
NeedAuth: needAuth,
367-
}
368391

369-
return
392+
IsUpload: isUpload,
393+
IsMkdir: isMkdir,
394+
IsDelete: isDelete,
395+
IsMutate: isMutate,
396+
WantJson: wantJson,
397+
}
370398
}

0 commit comments

Comments
 (0)