-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathep_adm_periods.go
More file actions
64 lines (52 loc) · 2.71 KB
/
ep_adm_periods.go
File metadata and controls
64 lines (52 loc) · 2.71 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
package main
import (
"log/slog"
"net/http"
)
func (app *App) handleAdmPeriods(w http.ResponseWriter, r *http.Request, aui *UserInfoAdmin) {
app.logRequestStart(r, "handleAdmPeriods", slog.String("admin_username", aui.Username))
if r.Method != http.MethodGet {
app.respondHTTPError(r, w, http.StatusMethodNotAllowed, "Method Not Allowed", nil, slog.String("admin_username", aui.Username))
return
}
periods, err := app.queries.GetPeriods(r.Context())
if err != nil {
app.respondHTTPError(r, w, http.StatusInternalServerError, "Internal Server Error\n"+err.Error(), err, slog.String("admin_username", aui.Username))
return
}
if err := app.admRenderTemplate(w, r, "periods", periods, slog.String("admin_username", aui.Username)); err != nil {
app.respondHTTPError(r, w, http.StatusInternalServerError, "Internal Server Error\nfailed rendering template", err, slog.String("admin_username", aui.Username))
}
}
func (app *App) handleAdmPeriodsNew(w http.ResponseWriter, r *http.Request, aui *UserInfoAdmin) {
app.logRequestStart(r, "handleAdmPeriodsNew", slog.String("admin_username", aui.Username))
id := r.FormValue("id")
if id == "" {
app.respondHTTPError(r, w, http.StatusBadRequest, "Bad Request\nYou are trying to add an empty period ID, which is not allowed", nil, slog.String("admin_username", aui.Username))
return
}
err := app.queries.NewPeriod(r.Context(), id)
if err != nil {
app.respondHTTPError(r, w, http.StatusInternalServerError, "Internal Server Error\n"+err.Error(), err, slog.String("admin_username", aui.Username), slog.String("period_id", id))
return
}
app.logInfo(r, logMsgAdminPeriodsCreate, slog.String("admin_username", aui.Username), slog.String("period_id", id))
app.wsHub.Broadcast(WSMessage("invalidate_periods"))
http.Redirect(w, r, "/admin/periods", http.StatusSeeOther)
}
func (app *App) handleAdmPeriodsDelete(w http.ResponseWriter, r *http.Request, aui *UserInfoAdmin) {
app.logRequestStart(r, "handleAdmPeriodsDelete", slog.String("admin_username", aui.Username))
id := r.FormValue("id")
if id == "" {
app.respondHTTPError(r, w, http.StatusBadRequest, "Bad Request\nYou are trying to delete an empty period ID, which is not allowed", nil, slog.String("admin_username", aui.Username))
return
}
err := app.queries.DeletePeriod(r.Context(), id)
if err != nil {
app.respondHTTPError(r, w, http.StatusInternalServerError, "Internal Server Error\n"+err.Error(), err, slog.String("admin_username", aui.Username), slog.String("period_id", id))
return
}
app.logInfo(r, logMsgAdminPeriodsDelete, slog.String("admin_username", aui.Username), slog.String("period_id", id))
app.wsHub.Broadcast(WSMessage("invalidate_periods"))
http.Redirect(w, r, "/admin/periods", http.StatusSeeOther)
}