diff --git a/internal/services/game_print_service/assets/organizer-map.png b/internal/services/game_print_service/assets/organizer-map.png new file mode 100644 index 0000000..b8a145e Binary files /dev/null and b/internal/services/game_print_service/assets/organizer-map.png differ diff --git a/internal/services/game_print_service/assets/organizer-payment.png b/internal/services/game_print_service/assets/organizer-payment.png new file mode 100644 index 0000000..d144ad0 Binary files /dev/null and b/internal/services/game_print_service/assets/organizer-payment.png differ diff --git a/internal/services/game_print_service/service.go b/internal/services/game_print_service/service.go index eff5044..92cf0a8 100644 --- a/internal/services/game_print_service/service.go +++ b/internal/services/game_print_service/service.go @@ -5,6 +5,7 @@ import ( "archive/zip" "bytes" "context" + _ "embed" "errors" "fmt" "net/url" @@ -28,6 +29,12 @@ const ( maxPackageSize = 256 << 20 ) +//go:embed assets/organizer-map.png +var organizerMap []byte + +//go:embed assets/organizer-payment.png +var organizerPayment []byte + var ( ErrPackageTooLarge = errors.New("материалы для печати превышают 256 МБ") ErrInvalidPrintText = errors.New("текст материалов содержит неподдерживаемые символы") @@ -119,6 +126,17 @@ func (s *GamePrintService) Download(ctx context.Context, gameID int) ([]byte, st _, err = entry.Write(data) return err } + for _, material := range []struct { + name string + data []byte + }{ + {"карта лил бразил.png", organizerMap}, + {"evening-detective-payment-a4.png", organizerPayment}, + } { + if err := add(hostFolder+material.name, material.data); err != nil { + return nil, "", err + } + } intro := "" if story.Introduction != nil { intro = cleaner.NewCleaner().ClearText(story.Introduction.Text) diff --git a/internal/services/game_print_service/service_test.go b/internal/services/game_print_service/service_test.go index 7a3fe0b..4bf2f4c 100644 --- a/internal/services/game_print_service/service_test.go +++ b/internal/services/game_print_service/service_test.go @@ -157,6 +157,17 @@ func TestDownloadPrintMaterials(t *testing.T) { t.Errorf("missing PDF %s", name) } } + for _, material := range []struct { + name string + data []byte + }{ + {"карта лил бразил.png", organizerMap}, + {"evening-detective-payment-a4.png", organizerPayment}, + } { + if !bytes.Equal(entries[hostFolder+material.name], material.data) { + t.Errorf("original organizer material changed or missing: %s", material.name) + } + } diplomas := 0 for name := range entries { if strings.HasPrefix(name, hostFolder+"Дипломы/") { @@ -178,7 +189,7 @@ func TestDownloadPrintMaterials(t *testing.T) { if !bytes.Equal(entries[playerFolder+"Улики/001 - Письмо _ улика.pdf"], f.files["clue.pdf"]) { t.Fatal("original clue was changed or missing") } - wantEntries := 10 + wantEntries := 12 if tc.wantQR { wantEntries++ }