84 lines
1.8 KiB
Go
84 lines
1.8 KiB
Go
package webcontroller
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"fornaxian.com/pixeldrain-web/pixelapi"
|
|
"github.com/Fornaxian/log"
|
|
"github.com/julienschmidt/httprouter"
|
|
)
|
|
|
|
func (wc *WebController) serveLogout(
|
|
w http.ResponseWriter,
|
|
r *http.Request,
|
|
p httprouter.Params,
|
|
) {
|
|
if key, err := wc.getAPIKey(r); err == nil {
|
|
var api = pixelapi.New(wc.conf.APIURLInternal, key)
|
|
_, err1 := api.UserSessionDestroy(key)
|
|
if err1 != nil {
|
|
log.Warn("logout failed for session '%s': %s", key, err1)
|
|
}
|
|
}
|
|
|
|
http.Redirect(w, r, "/", http.StatusSeeOther)
|
|
}
|
|
|
|
func (wc *WebController) serveUserHome(
|
|
w http.ResponseWriter,
|
|
r *http.Request,
|
|
p httprouter.Params,
|
|
) {
|
|
var key string
|
|
var err error
|
|
if key, err = wc.getAPIKey(r); err != nil {
|
|
http.Redirect(w, r, "/", http.StatusSeeOther)
|
|
return
|
|
}
|
|
|
|
var api = pixelapi.New(wc.conf.APIURLInternal, key)
|
|
files, aerr := api.UserFiles(0, 18)
|
|
if aerr != nil {
|
|
log.Error("Cannot get user files: %v", aerr)
|
|
wc.serveNotFound(w, r)
|
|
return
|
|
}
|
|
|
|
templateData := wc.newTemplateData(w, r)
|
|
templateData.Other = files
|
|
|
|
err = wc.templates.Get().ExecuteTemplate(w, "user_home", templateData)
|
|
if err != nil {
|
|
log.Error("Failed to execute template: %s", err)
|
|
}
|
|
}
|
|
|
|
func (wc *WebController) serveUserFiles(
|
|
w http.ResponseWriter,
|
|
r *http.Request,
|
|
p httprouter.Params,
|
|
) {
|
|
var key string
|
|
var err error
|
|
if key, err = wc.getAPIKey(r); err != nil {
|
|
http.Redirect(w, r, "/", http.StatusTemporaryRedirect)
|
|
return
|
|
}
|
|
|
|
var api = pixelapi.New(wc.conf.APIURLInternal, key)
|
|
files, aerr := api.UserFiles(0, 1000)
|
|
if aerr != nil {
|
|
log.Error("Cannot get user files: %v", aerr)
|
|
wc.serveNotFound(w, r)
|
|
return
|
|
}
|
|
|
|
templateData := wc.newTemplateData(w, r)
|
|
templateData.Other = files
|
|
|
|
err = wc.templates.Get().ExecuteTemplate(w, "file_manager", templateData)
|
|
if err != nil {
|
|
log.Error("Failed to execute template: %s", err)
|
|
}
|
|
}
|