Files
libredesk/cmd/settings.go
Abhinav Raut 0e84fac099 feat: ACL and ABAC
- Simplify ws package.
2024-09-19 04:17:03 +05:30

68 lines
1.5 KiB
Go

package main
import (
"github.com/abhinavxd/artemis/internal/setting/models"
"github.com/valyala/fasthttp"
"github.com/zerodha/fastglue"
)
func handleGetGeneralSettings(r *fastglue.Request) error {
var (
app = r.Context.(*App)
)
out, err := app.setting.GetByPrefix("app")
if err != nil {
return sendErrorEnvelope(r, err)
}
return r.SendEnvelope(out)
}
func handleUpdateGeneralSettings(r *fastglue.Request) error {
var (
app = r.Context.(*App)
req = models.General{}
)
if err := r.Decode(&req, "json"); err != nil {
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, "Bad request", nil, "")
}
if err := app.setting.Update(req); err != nil {
return sendErrorEnvelope(r, err)
}
return r.SendEnvelope(true)
}
func handleGetEmailNotificationSettings(r *fastglue.Request) error {
var (
app = r.Context.(*App)
req = models.EmailNotification{}
)
if err := r.Decode(&req, "json"); err != nil {
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, "Bad request", nil, "")
}
out, err := app.setting.GetByPrefix("notification.email")
if err != nil {
return sendErrorEnvelope(r, err)
}
return r.SendEnvelope(out)
}
func handleUpdateEmailNotificationSettings(r *fastglue.Request) error {
var (
app = r.Context.(*App)
req = models.EmailNotification{}
)
if err := r.Decode(&req, "json"); err != nil {
return r.SendErrorEnvelope(fasthttp.StatusBadRequest, "Bad request", nil, "")
}
if err := app.setting.Update(req); err != nil {
return sendErrorEnvelope(r, err)
}
return r.SendEnvelope(true)
}