From 08fb20d7be7623a706827a2e2f63cca886b7a5b3 Mon Sep 17 00:00:00 2001 From: vinchent Date: Mon, 26 Aug 2024 22:49:10 +0200 Subject: [PATCH] Setting un invoice pdf microservice --- .gitignore | 1 + Makefile | 24 ++++- cmd/api/handlers-api.go | 22 ++-- cmd/micro/invoice/helpers.go | 86 +++++++++++++++ cmd/micro/invoice/invoice-handlers.go | 145 ++++++++++++++++++++++++++ cmd/micro/invoice/invoice-routes.go | 23 ++++ cmd/micro/invoice/invoice.go | 79 ++++++++++++++ go.mod | 3 + go.sum | 13 +++ pdf-templates/invoice.pdf | Bin 0 -> 54339 bytes 10 files changed, 382 insertions(+), 14 deletions(-) create mode 100644 cmd/micro/invoice/helpers.go create mode 100644 cmd/micro/invoice/invoice-handlers.go create mode 100644 cmd/micro/invoice/invoice-routes.go create mode 100644 cmd/micro/invoice/invoice.go create mode 100644 pdf-templates/invoice.pdf diff --git a/.gitignore b/.gitignore index ddd48d8..895c6aa 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ cred.txt dist/ .air.toml tmp/ +invoices/ diff --git a/Makefile b/Makefile index ce92185..9980e91 100644 --- a/Makefile +++ b/Makefile @@ -5,7 +5,7 @@ API_PORT=4001 DSN=vinchent:secret@tcp(localhost:3306)/widgets?parseTime=true&tls=false ## build: builds all binaries -build: clean build_front build_back +build: clean build_front build_back build_invoice @printf "All binaries built!\n" ## clean: cleans all binaries and runs go clean @@ -15,6 +15,12 @@ clean: @go clean @echo "Cleaned!" +## build_invoice: builds the invoice microservice +build_invoice: + @echo "Building invoice microservice..." + @go build -o dist/invoice ./cmd/micro/invoice + @echo "Invoice microservice built!" + ## build_front: builds the front end build_front: @echo "Building front end..." @@ -28,8 +34,14 @@ build_back: @echo "Back end built!" ## start: starts front and back end -start: start_front start_back +start: start_front start_back start_invoice +## start_invoice: starts the invoice microservice +start_invoice: build_invoice + @echo "Starting the invoice microservice..." + @./dist/invoice & + @echo "invoice microservice running!" + ## start_front: starts the front end start_front: build_front @echo "Starting the front end..." @@ -43,9 +55,15 @@ start_back: build_back @echo "Back end running!" ## stop: stops the front and back end -stop: stop_front stop_back +stop: stop_front stop_back stop_invoice @echo "All applications stopped" +## stop_invoice: stops the invoice microservice +stop_invoice: + @echo "Stopping the invoice microservice..." + @-pkill -SIGTERM -f "invoice" + @echo "Stopped invoice microservice" + ## stop_front: stops the front end stop_front: @echo "Stopping the front end..." diff --git a/cmd/api/handlers-api.go b/cmd/api/handlers-api.go index 2994062..ed304d1 100644 --- a/cmd/api/handlers-api.go +++ b/cmd/api/handlers-api.go @@ -33,7 +33,7 @@ type stripePayload struct { LastName string `json:"last_name"` } -type jsonResponse struct { +type JSONResponse struct { OK bool `json:"ok"` Message string `json:"message,omitempty"` Content string `json:"content,omitempty"` @@ -63,7 +63,7 @@ func (app *application) GetPaymentIntent(w http.ResponseWriter, r *http.Request) pi, msg, err := card.Charge(payload.Currency, amount) if err != nil { - j := jsonResponse{ + j := JSONResponse{ OK: false, Message: msg, Content: "", @@ -190,7 +190,7 @@ func (app *application) CreateCustomerAndSubscribeToPlan(w http.ResponseWriter, } } - resp := jsonResponse{ + resp := JSONResponse{ OK: okay, Message: txnMsg, } @@ -340,7 +340,7 @@ func (app *application) CheckAuthentication(w http.ResponseWriter, r *http.Reque } // valid user - var payload jsonResponse + var payload JSONResponse payload.OK = true payload.Message = fmt.Sprintf("authenticated user %s", user.Email) app.writeJSON(w, http.StatusOK, payload) @@ -423,7 +423,7 @@ func (app *application) SendPasswordResetEmail(w http.ResponseWriter, r *http.Re // verify that email exists _, err = app.DB.GetUserByEmail(payload.Email) if err != nil { - resp := jsonResponse{ + resp := JSONResponse{ OK: false, Message: "No matching email found on our system", } @@ -458,7 +458,7 @@ func (app *application) SendPasswordResetEmail(w http.ResponseWriter, r *http.Re return } - resp := jsonResponse{ + resp := JSONResponse{ OK: true, } @@ -509,7 +509,7 @@ func (app *application) ResetPassword(w http.ResponseWriter, r *http.Request) { return } - resp := jsonResponse{ + resp := JSONResponse{ OK: true, Message: "Password reset.", } @@ -649,7 +649,7 @@ func (app *application) RefundCharge(w http.ResponseWriter, r *http.Request) { return } - var resp jsonResponse + var resp JSONResponse resp.OK = true resp.Message = "Charge refunded" @@ -696,7 +696,7 @@ func (app *application) CancelSubscription(w http.ResponseWriter, r *http.Reques return } - var resp jsonResponse + var resp JSONResponse resp.OK = true resp.Message = "Subscription canceled" @@ -775,7 +775,7 @@ func (app *application) EditUser(w http.ResponseWriter, r *http.Request) { } } - var resp jsonResponse + var resp JSONResponse resp.OK = true app.writeJSON(w, http.StatusOK, resp) } @@ -789,7 +789,7 @@ func (app *application) DeleteUser(w http.ResponseWriter, r *http.Request) { app.badRequest(w, r, err) return } - var resp jsonResponse + var resp JSONResponse resp.OK = true app.writeJSON(w, http.StatusOK, resp) } diff --git a/cmd/micro/invoice/helpers.go b/cmd/micro/invoice/helpers.go new file mode 100644 index 0000000..cb02703 --- /dev/null +++ b/cmd/micro/invoice/helpers.go @@ -0,0 +1,86 @@ +package main + +import ( + "encoding/json" + "errors" + "io" + "net/http" + "os" +) + +type JSONResponse struct { + OK bool `json:"ok"` + Message string `json:"message,omitempty"` +} + +func (app *application) readJSON(w http.ResponseWriter, r *http.Request, data interface{}) error { + maxBytes := 1048576 + + r.Body = http.MaxBytesReader(w, r.Body, int64(maxBytes)) + + dec := json.NewDecoder(r.Body) + err := dec.Decode(data) + if err != nil { + return err + } + + // Make sure there is only one entry. + err = dec.Decode(&struct{}{}) + if err != io.EOF { + return errors.New("body must only have a single JSON value") + } + + return nil +} + +// writeJSON writes arbitrary data out as JSON +func (app *application) writeJSON( + w http.ResponseWriter, + status int, data interface{}, + headers ...http.Header, +) error { + out, err := json.MarshalIndent(data, "", "\t") + if err != nil { + return err + } + + if len(headers) > 0 { + for k, v := range headers[0] { + w.Header()[k] = v + } + } + + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(status) + w.Write(out) + return nil +} + +func (app *application) badRequest(w http.ResponseWriter, r *http.Request, err error) error { + var payload JSONResponse + + payload.OK = false + payload.Message = err.Error() + + out, err := json.MarshalIndent(payload, "", "\t") + if err != nil { + return err + } + + w.Header().Set("Content-Type", "application/json") + w.WriteHeader(http.StatusBadGateway) + w.Write(out) + return nil +} + +func (app *application) CreateDirIfNotExist(path string) error { + const mode = 0755 + if _, err := os.Stat(path); os.IsNotExist(err) { + err := os.Mkdir(path, mode) + if err != nil { + app.errorLog.Println(err) + return err + } + } + return nil +} diff --git a/cmd/micro/invoice/invoice-handlers.go b/cmd/micro/invoice/invoice-handlers.go new file mode 100644 index 0000000..0856435 --- /dev/null +++ b/cmd/micro/invoice/invoice-handlers.go @@ -0,0 +1,145 @@ +package main + +import ( + "fmt" + "net/http" + "time" + + "github.com/phpdave11/gofpdf" + "github.com/phpdave11/gofpdf/contrib/gofpdi" +) + +type Order struct { + ID int `json:"id"` + Quantity int `json:"quantity"` + Amount int `json:"amount"` + Product string `json:"product"` + FirstName string `json:"first_name"` + LastName string `json:"last_name"` + Email string `json:"email"` + CreatedAt time.Time `json:"-"` +} + +func (app *application) CreateAndSendInvoice(w http.ResponseWriter, r *http.Request) { + // receive json + var order Order + + err := app.readJSON(w, r, &order) + if err != nil { + app.badRequest(w, r, err) + return + } + + // generate a pdf invoice + + // create mail + + // send mail with attachment + + // send response + var resp JSONResponse + resp.OK = true + resp.Message = fmt.Sprintf("Invoice %d.pdf created and sent to %s", order.ID, order.Email) + app.writeJSON(w, http.StatusCreated, resp) +} + +func (app *application) createInvoicePDF(order Order) error { + pdf := gofpdf.New("P", "mm", "Letter", "") + pdf.SetMargins(10, 13, 10) + pdf.SetAutoPageBreak(true, 0) + + importer := gofpdi.NewImporter() + + t := importer.ImportPage(pdf, "./pdf-templates/invoice.pdf", q, "/MediaBox") + + pdf.AddPage() + importer.UseImportedTemplate(pdf, t, 0, 0, 215.9, 0) + + pdf.SetY(20) + + // write info + pdf.SetY(50) + pdf.SetX(10) + pdf.SetFont("Times", "", 11) + pdf.CellFormat( + 97, + 8, + fmt.Sprintf("Attention: %s %s", order.FirstName, order.LastName), + "", + 0, + "L", + false, + 0, + "", + ) + pdf.Ln(5) + pdf.CellFormat( + 97, + 8, + order.Email, + "", + 0, + "L", + false, + 0, + "", + ) + pdf.Ln(5) + pdf.CellFormat( + 97, + 8, + order.CreatedAt.Format("2005-01-02"), + "", + 0, + "L", + false, + 0, + "", + ) + + pdf.SetX(58) + pdf.SetY(93) + pdf.CellFormat( + 155, + 8, + order.Product, + "", + 0, + "L", + false, + 0, + "", + ) + pdf.SetX(166) + pdf.CellFormat( + 20, + 8, + fmt.Sprintf("%d", order.Quantity), + "", + 0, + "C", + false, + 0, + "", + ) + + pdf.SetX(185) + pdf.CellFormat( + 155, + 8, + fmt.Sprintf("€%.2f", float32(order.Amount/100.0)), + "", + 0, + "R", + false, + 0, + "", + ) + + invoicePath := fmt.Sprintf("./invoices/%d.pdf", order.ID) + err := pdf.OutputFileAndClose(invoicePath) + if err != nil { + return err + } + return nil +} diff --git a/cmd/micro/invoice/invoice-routes.go b/cmd/micro/invoice/invoice-routes.go new file mode 100644 index 0000000..594afbb --- /dev/null +++ b/cmd/micro/invoice/invoice-routes.go @@ -0,0 +1,23 @@ +package main + +import ( + "net/http" + + "github.com/go-chi/chi/v5" + "github.com/go-chi/cors" +) + +func (app *application) routes() http.Handler { + mux := chi.NewRouter() + + mux.Use(cors.Handler(cors.Options{ + AllowedOrigins: []string{"https://*", "http://*"}, + AllowedMethods: []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"}, + AllowedHeaders: []string{"Accept", "Authorization", "Content-Type", "X-CSRF-Token"}, + AllowCredentials: false, + MaxAge: 300, + })) + + mux.Post("/invoice/create-and-send", app.CreateAndSendInvoice) + return mux +} diff --git a/cmd/micro/invoice/invoice.go b/cmd/micro/invoice/invoice.go new file mode 100644 index 0000000..6be8b80 --- /dev/null +++ b/cmd/micro/invoice/invoice.go @@ -0,0 +1,79 @@ +package main + +import ( + "flag" + "fmt" + "log" + "net/http" + "os" + "time" +) + +const ( + version = "1.0.0" +) + +type config struct { + port int + smtp struct { + host string + port int + username string + password string + } + frontend string +} + +type application struct { + config config + infoLog *log.Logger + errorLog *log.Logger + version string +} + +func (app *application) serve() error { + srv := &http.Server{ + Addr: fmt.Sprintf(":%d", app.config.port), + Handler: app.routes(), + IdleTimeout: 30 * time.Second, + ReadTimeout: 10 * time.Second, + ReadHeaderTimeout: 5 * time.Second, + WriteTimeout: 5 * time.Second, + } + + app.infoLog.Printf( + "Starting invoice microservice on port %d", + app.config.port, + ) + return srv.ListenAndServe() +} + +func main() { + var cfg config + + flag.IntVar(&cfg.port, "port", 5000, "Server port to listen on") + flag.StringVar(&cfg.smtp.host, "smtphost", "0.0.0.0", "smtp host") + flag.IntVar(&cfg.smtp.port, "smtpport", 1025, "smtp host") + flag.StringVar(&cfg.smtp.username, "smtpuser", "user", "smtp user") + flag.StringVar(&cfg.smtp.password, "smtppwd", "password", "smtp password") + flag.StringVar(&cfg.frontend, "frontend", "http://localhost:4000", "frontend address") + + flag.Parse() + + infoLog := log.New(os.Stdout, "INFO\t", log.Ldate|log.Ltime) + errorLog := log.New(os.Stdout, "ERROR\t", log.Ldate|log.Ltime|log.Lshortfile) + + app := &application{ + version: version, + config: cfg, + infoLog: infoLog, + errorLog: errorLog, + } + + app.CreateDirIfNotExist("./invoices") + + err := app.serve() + if err != nil { + log.Fatal(err) + } +} diff --git a/go.mod b/go.mod index 85f88ff..1b90cdc 100644 --- a/go.mod +++ b/go.mod @@ -10,6 +10,7 @@ require ( github.com/go-chi/cors v1.2.1 github.com/go-sql-driver/mysql v1.8.1 github.com/gorilla/websocket v1.5.3 + github.com/phpdave11/gofpdf v1.4.2 github.com/stripe/stripe-go/v79 v79.6.0 github.com/xhit/go-simple-mail/v2 v2.16.0 golang.org/x/crypto v0.26.0 @@ -18,6 +19,8 @@ require ( require ( filippo.io/edwards25519 v1.1.0 // indirect github.com/go-test/deep v1.1.1 // indirect + github.com/phpdave11/gofpdi v1.0.12 // indirect + github.com/pkg/errors v0.9.1 // indirect github.com/toorop/go-dkim v0.0.0-20201103131630-e1cd1a0a5208 // indirect golang.org/x/sys v0.23.0 // indirect ) diff --git a/go.sum b/go.sum index 596620a..20f6b41 100644 --- a/go.sum +++ b/go.sum @@ -4,6 +4,7 @@ github.com/alexedwards/scs/mysqlstore v0.0.0-20240316134038-7e11d57e8885 h1:C7QA github.com/alexedwards/scs/mysqlstore v0.0.0-20240316134038-7e11d57e8885/go.mod h1:p8jK3D80sw1PFrCSdlcJF1O75bp55HqbgDyyCLM0FrE= github.com/alexedwards/scs/v2 v2.8.0 h1:h31yUYoycPuL0zt14c0gd+oqxfRwIj6SOjHdKRZxhEw= github.com/alexedwards/scs/v2 v2.8.0/go.mod h1:ToaROZxyKukJKT/xLcVQAChi5k6+Pn1Gvmdl7h3RRj8= +github.com/boombuler/barcode v1.0.0/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8= github.com/bwmarrin/go-alone v0.0.0-20190806015146-742bb55d1631 h1:Xb5rra6jJt5Z1JsZhIMby+IP5T8aU+Uc2RC9RzSxs9g= github.com/bwmarrin/go-alone v0.0.0-20190806015146-742bb55d1631/go.mod h1:P86Dksd9km5HGX5UMIocXvX87sEp2xUARle3by+9JZ4= github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= @@ -19,9 +20,19 @@ github.com/go-test/deep v1.1.1 h1:0r/53hagsehfO4bzD2Pgr/+RgHqhmf+k1Bpse2cTu1U= github.com/go-test/deep v1.1.1/go.mod h1:5C2ZWiW0ErCdrYzpqxLbTX7MG14M9iiw8DgHncVwcsE= github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/jung-kurt/gofpdf v1.0.0/go.mod h1:7Id9E/uU8ce6rXgefFLlgrJj/GYY22cpxn+r32jIOes= +github.com/phpdave11/gofpdf v1.4.2 h1:KPKiIbfwbvC/wOncwhrpRdXVj2CZTCFlw4wnoyjtHfQ= +github.com/phpdave11/gofpdf v1.4.2/go.mod h1:zpO6xFn9yxo3YLyMvW8HcKWVdbNqgIfOOp2dXMnm1mY= +github.com/phpdave11/gofpdi v1.0.12 h1:RZb9NG62cw/RW0rHAduVRo+98R8o/G1krcg2ns7DakQ= +github.com/phpdave11/gofpdi v1.0.12/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI= +github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/ruudk/golang-pdf417 v0.0.0-20181029194003-1af4ab5afa58/go.mod h1:6lfFZQK844Gfx8o5WFuvpxWRwnSoipWe/p622j1v06w= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stripe/stripe-go/v79 v79.6.0 h1:qSBV2f2rpLEEZTdTlVLzdmQJZNmfoo2E3hUEkFT8GBc= @@ -32,6 +43,7 @@ github.com/xhit/go-simple-mail/v2 v2.16.0 h1:ouGy/Ww4kuaqu2E2UrDw7SvLaziWTB60ICL github.com/xhit/go-simple-mail/v2 v2.16.0/go.mod h1:b7P5ygho6SYE+VIqpxA6QkYfv4teeyG4MKqB3utRu98= golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/image v0.0.0-20190910094157-69e4b8554b2a/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= @@ -40,6 +52,7 @@ golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= diff --git a/pdf-templates/invoice.pdf b/pdf-templates/invoice.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4431671b51bdd7fee598f2b16337e0eaf97f8a69 GIT binary patch literal 54339 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

jKc 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 literal 0 HcmV?d00001