From 491f482fc750bfc5c2410fd0848f66b36fdb5eeb Mon Sep 17 00:00:00 2001 From: vinchent Date: Mon, 26 Aug 2024 23:06:29 +0200 Subject: [PATCH] fix errors and test pdf --- cmd/api/helpers.go | 4 ++-- cmd/micro/invoice/invoice-handlers.go | 27 ++++++++++++++++++++------- cmd/micro/invoice/invoice-routes.go | 2 +- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/cmd/api/helpers.go b/cmd/api/helpers.go index e543944..1a05763 100644 --- a/cmd/api/helpers.go +++ b/cmd/api/helpers.go @@ -53,7 +53,7 @@ func (app *application) writeJSON( } func (app *application) badRequest(w http.ResponseWriter, r *http.Request, err error) error { - var payload jsonResponse + var payload JSONResponse payload.OK = false payload.Message = err.Error() @@ -70,7 +70,7 @@ func (app *application) badRequest(w http.ResponseWriter, r *http.Request, err e } func (app *application) invalidCredentials(w http.ResponseWriter) error { - var payload jsonResponse + var payload JSONResponse payload.OK = false payload.Message = "invalid authentication credentials" diff --git a/cmd/micro/invoice/invoice-handlers.go b/cmd/micro/invoice/invoice-handlers.go index 0856435..07240c7 100644 --- a/cmd/micro/invoice/invoice-handlers.go +++ b/cmd/micro/invoice/invoice-handlers.go @@ -24,14 +24,27 @@ func (app *application) CreateAndSendInvoice(w http.ResponseWriter, r *http.Requ // receive json var order Order - err := app.readJSON(w, r, &order) + order.ID = 100 + order.Email = "me@here.com" + order.FirstName = "John" + order.LastName = "Smith" + order.Quantity = 1 + order.Amount = 1000 + order.Product = "Widget" + order.CreatedAt = time.Now() + // err = app.readJSON(w, r, &order) + // if err != nil { + // app.badRequest(w, r, err) + // return + // } + + // generate a pdf invoice + err := app.createInvoicePDF(order) if err != nil { app.badRequest(w, r, err) return } - // generate a pdf invoice - // create mail // send mail with attachment @@ -50,7 +63,7 @@ func (app *application) createInvoicePDF(order Order) error { importer := gofpdi.NewImporter() - t := importer.ImportPage(pdf, "./pdf-templates/invoice.pdf", q, "/MediaBox") + t := importer.ImportPage(pdf, "./pdf-templates/invoice.pdf", 1, "/MediaBox") pdf.AddPage() importer.UseImportedTemplate(pdf, t, 0, 0, 215.9, 0) @@ -88,7 +101,7 @@ func (app *application) createInvoicePDF(order Order) error { pdf.CellFormat( 97, 8, - order.CreatedAt.Format("2005-01-02"), + order.CreatedAt.Format("2006-01-02"), "", 0, "L", @@ -125,9 +138,9 @@ func (app *application) createInvoicePDF(order Order) error { pdf.SetX(185) pdf.CellFormat( - 155, + 20, 8, - fmt.Sprintf("€%.2f", float32(order.Amount/100.0)), + fmt.Sprintf("$%.2f", float32(order.Amount)/100.0), "", 0, "R", diff --git a/cmd/micro/invoice/invoice-routes.go b/cmd/micro/invoice/invoice-routes.go index 594afbb..4c71b03 100644 --- a/cmd/micro/invoice/invoice-routes.go +++ b/cmd/micro/invoice/invoice-routes.go @@ -18,6 +18,6 @@ func (app *application) routes() http.Handler { MaxAge: 300, })) - mux.Post("/invoice/create-and-send", app.CreateAndSendInvoice) + mux.Get("/invoice/create-and-send", app.CreateAndSendInvoice) return mux }