package lulutest import ( crand "crypto/rand" "fmt" mrand "math/rand/v2" "git.samanthony.xyz/lulu" ) var ( DummyEmailAddr = lulu.MustParseEmailAddress("test@example.com") DummyPkgId = lulu.PkgId{lulu.UsTrade, lulu.Mono, lulu.Standard, lulu.Perfect, lulu.P60UncoatedWhite, lulu.Matte, lulu.NoLinen, lulu.NoFoil} DummyShipAddr = lulu.ShippingAddress{ City: "Lübeck", CountryCode: "DE", Name: "Hans Dampf", Phone: lulu.MustParsePhoneNumber("844-212-0689"), PostCode: "23552", Street1: "Holstenstr. 40", } ) // MakeReprintables creates a slice of dummy [lulu.Printable]s. func MakePrintables(c lulu.Client, n int) []lulu.Printable { ps := make([]lulu.Printable, n) for i := range ps { ps[i] = lulu.Printable{ ExternalId: "dummy-" + crand.Text(), CoverUrl: "https://www.dropbox.com/sh/p3zh22vzsaegiri/AADP367j0bTWlt8fCu-_tm2ia/161025/139056_cover.pdf?dl=1", InteriorUrl: "https://www.dropbox.com/sh/p3zh22vzsaegiri/AACOUn3LFKsITDzylh13bQpsa/161025/thesis2.pdf?dl=1", Mfg: DummyPkgId, Quantity: 1 + mrand.UintN(10), Title: "The Tale of " + crand.Text(), } } return ps } // MakeReprintables is used to make a slice of dummy [lulu.Reprintable]s. // It submits a print job of n books, cancels the order, and returns the books' printables. func MakeReprintables(c lulu.Client, n int) ([]lulu.Reprintable, error) { ptbs := MakePrintables(c, n) job, err := c.Print(DummyEmailAddr, "dummy-"+crand.Text(), lulu.MaxProductionDelay, DummyShipAddr, lulu.Mail, ptbs) if err != nil { return nil, err } if len(job.Items) != n { return nil, fmt.Errorf("expected %d line items, got %d", n, len(job.Items)) } rpbs := make([]lulu.Reprintable, n) for i, it := range job.Items { rpbs[i] = lulu.Reprintable{ it.ExternalId, it.PrintableId, it.Quantity, it.Title, } } return rpbs, nil }