/
page.go
40 lines (33 loc) · 1011 Bytes
/
page.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
package model
import (
"context"
"github.com/bcc-code/bcc-media-platform/backend/common"
"github.com/bcc-code/bcc-media-platform/backend/user"
"github.com/bcc-code/bcc-media-platform/backend/utils"
"strconv"
)
// PageFrom converts common.Page to Page
func PageFrom(ctx context.Context, p *common.Page) *Page {
ginCtx, _ := utils.GinCtx(ctx)
languages := user.GetLanguagesFromCtx(ginCtx)
return &Page{
ID: strconv.Itoa(p.ID),
Code: p.Code,
Title: p.Title.Get(languages),
Description: p.Description.GetValueOrNil(languages),
}
}
// PageSectionItemFrom returns a SectionItem from common.Page
func PageSectionItemFrom(ctx context.Context, p *common.Page, sort int, sectionStyle string) *SectionItem {
ginCtx, _ := utils.GinCtx(ctx)
languages := user.GetLanguagesFromCtx(ginCtx)
page := PageFrom(ctx, p)
img := p.Images.GetDefault(languages, sectionStyle)
return &SectionItem{
ID: page.ID,
Title: page.Title,
Image: img,
Item: page,
Sort: sort,
}
}