-
-
Notifications
You must be signed in to change notification settings - Fork 27
/
setting.go
57 lines (48 loc) 路 1.37 KB
/
setting.go
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
package handlers
import (
"github.com/gofiber/fiber/v2"
"github.com/shurco/litecart/internal/models"
"github.com/shurco/litecart/internal/queries"
"github.com/shurco/litecart/pkg/logging"
"github.com/shurco/litecart/pkg/webutil"
)
// Ping is ...
// [get] /ping
func Ping(c *fiber.Ctx) error {
return webutil.Response(c, fiber.StatusOK, "Pong", nil)
}
// Settings is ...
// [get] /api/settings
func Settings(c *fiber.Ctx) error {
db := queries.DB()
log := logging.New()
settingMain, err := queries.GetSettingByGroup[models.Main](c.Context(), db)
if err != nil {
log.ErrorStack(err)
return webutil.StatusInternalServerError(c)
}
settingSocial, err := queries.GetSettingByGroup[models.Social](c.Context(), db)
if err != nil {
log.ErrorStack(err)
return webutil.StatusInternalServerError(c)
}
settingPayment, err := queries.GetSettingByGroup[models.Payment](c.Context(), db)
if err != nil {
log.ErrorStack(err)
return webutil.StatusInternalServerError(c)
}
pages, err := db.ListPages(c.Context(), false)
if err != nil {
log.ErrorStack(err)
return webutil.StatusInternalServerError(c)
}
return webutil.Response(c, fiber.StatusOK, "Settings", map[string]any{
"main": map[string]string{
"site_name": settingMain.SiteName,
"domain": settingMain.Domain,
"currency": settingPayment.Currency,
},
"socials": settingSocial,
"pages": pages,
})
}