generated from VLADIMIR/template
clear pdf
This commit is contained in:
parent
6cbf29031c
commit
caaed14ebc
@ -7,6 +7,7 @@ import (
|
|||||||
"evening_detective/internal/config"
|
"evening_detective/internal/config"
|
||||||
"evening_detective/internal/modules/link"
|
"evening_detective/internal/modules/link"
|
||||||
"evening_detective/internal/modules/password"
|
"evening_detective/internal/modules/password"
|
||||||
|
"evening_detective/internal/modules/pdf"
|
||||||
"evening_detective/internal/services"
|
"evening_detective/internal/services"
|
||||||
"evening_detective/internal/services/story_service"
|
"evening_detective/internal/services/story_service"
|
||||||
proto "evening_detective/proto"
|
proto "evening_detective/proto"
|
||||||
@ -53,6 +54,8 @@ func main() {
|
|||||||
|
|
||||||
passwordGenerator := password.NewPasswordGenerator()
|
passwordGenerator := password.NewPasswordGenerator()
|
||||||
|
|
||||||
|
pdfGenerator := pdf.NewPDFGenerator()
|
||||||
|
|
||||||
clientHost := config.GetHost()
|
clientHost := config.GetHost()
|
||||||
proto.RegisterEveningDetectiveServer(
|
proto.RegisterEveningDetectiveServer(
|
||||||
s,
|
s,
|
||||||
@ -62,6 +65,7 @@ func main() {
|
|||||||
storyService,
|
storyService,
|
||||||
linkService,
|
linkService,
|
||||||
passwordGenerator,
|
passwordGenerator,
|
||||||
|
pdfGenerator,
|
||||||
clientHost,
|
clientHost,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
|
|||||||
7
internal/modules/pdf/interface.go
Normal file
7
internal/modules/pdf/interface.go
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
package pdf
|
||||||
|
|
||||||
|
import "evening_detective/internal/models"
|
||||||
|
|
||||||
|
type IPDFGenerator interface {
|
||||||
|
CreateTeamsPDF(teams []*models.Team) ([]byte, error)
|
||||||
|
}
|
||||||
@ -1,12 +1,11 @@
|
|||||||
package pdf_service
|
package pdf
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"embed"
|
||||||
"evening_detective/internal/models"
|
"evening_detective/internal/models"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"embed"
|
|
||||||
|
|
||||||
"github.com/signintech/gopdf"
|
"github.com/signintech/gopdf"
|
||||||
"github.com/skip2/go-qrcode"
|
"github.com/skip2/go-qrcode"
|
||||||
)
|
)
|
||||||
@ -14,7 +13,13 @@ import (
|
|||||||
//go:embed JetBrainsMono-Medium.ttf
|
//go:embed JetBrainsMono-Medium.ttf
|
||||||
var f embed.FS
|
var f embed.FS
|
||||||
|
|
||||||
func CreateTeamsPdf(teams []*models.Team) ([]byte, error) {
|
type service struct{}
|
||||||
|
|
||||||
|
func NewPDFGenerator() IPDFGenerator {
|
||||||
|
return &service{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *service) CreateTeamsPDF(teams []*models.Team) ([]byte, error) {
|
||||||
pdf := &gopdf.GoPdf{}
|
pdf := &gopdf.GoPdf{}
|
||||||
pdf.Start(gopdf.Config{PageSize: *gopdf.PageSizeA4}) // W: 595, H: 842
|
pdf.Start(gopdf.Config{PageSize: *gopdf.PageSizeA4}) // W: 595, H: 842
|
||||||
file, err := f.Open("JetBrainsMono-Medium.ttf")
|
file, err := f.Open("JetBrainsMono-Medium.ttf")
|
||||||
@ -7,7 +7,7 @@ import (
|
|||||||
"evening_detective/internal/models"
|
"evening_detective/internal/models"
|
||||||
"evening_detective/internal/modules/link"
|
"evening_detective/internal/modules/link"
|
||||||
"evening_detective/internal/modules/password"
|
"evening_detective/internal/modules/password"
|
||||||
"evening_detective/internal/services/pdf_service"
|
"evening_detective/internal/modules/pdf"
|
||||||
"evening_detective/internal/services/story_service"
|
"evening_detective/internal/services/story_service"
|
||||||
"evening_detective/proto"
|
"evening_detective/proto"
|
||||||
"fmt"
|
"fmt"
|
||||||
@ -23,6 +23,7 @@ type Services struct {
|
|||||||
storyService *story_service.StoryService
|
storyService *story_service.StoryService
|
||||||
linkService link.ILinkService
|
linkService link.ILinkService
|
||||||
passwordGenerator password.IPasswordGenerator
|
passwordGenerator password.IPasswordGenerator
|
||||||
|
pdfGenerator pdf.IPDFGenerator
|
||||||
clientHost string
|
clientHost string
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -31,6 +32,7 @@ func NewServices(
|
|||||||
storyService *story_service.StoryService,
|
storyService *story_service.StoryService,
|
||||||
linkService link.ILinkService,
|
linkService link.ILinkService,
|
||||||
passwordGenerator password.IPasswordGenerator,
|
passwordGenerator password.IPasswordGenerator,
|
||||||
|
pdfGenerator pdf.IPDFGenerator,
|
||||||
clientHost string,
|
clientHost string,
|
||||||
) *Services {
|
) *Services {
|
||||||
return &Services{
|
return &Services{
|
||||||
@ -38,6 +40,7 @@ func NewServices(
|
|||||||
storyService: storyService,
|
storyService: storyService,
|
||||||
linkService: linkService,
|
linkService: linkService,
|
||||||
passwordGenerator: passwordGenerator,
|
passwordGenerator: passwordGenerator,
|
||||||
|
pdfGenerator: pdfGenerator,
|
||||||
clientHost: clientHost,
|
clientHost: clientHost,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -203,7 +206,7 @@ func (s *Services) DownloadTeamsQrCodesFile(ctx context.Context, req *proto.Down
|
|||||||
for _, team := range teams {
|
for _, team := range teams {
|
||||||
team.Link = s.linkService.GetTeamClientLink(s.clientHost, team.Name, team.Password)
|
team.Link = s.linkService.GetTeamClientLink(s.clientHost, team.Name, team.Password)
|
||||||
}
|
}
|
||||||
b, err := pdf_service.CreateTeamsPdf(teams)
|
b, err := s.pdfGenerator.CreateTeamsPDF(teams)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user