Skip to content

Commit

Permalink
Merge master
Browse files Browse the repository at this point in the history
  • Loading branch information
Chris Gilmer committed Mar 14, 2019
2 parents 0d3d369 + 379b766 commit 5f41ea9
Show file tree
Hide file tree
Showing 101 changed files with 802 additions and 315 deletions.
26 changes: 23 additions & 3 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
#documentation - docs/how-to/run-pre-commit-hooks.md
repos:
- repo: local
hooks:
Expand Down Expand Up @@ -72,6 +73,13 @@ repos:
entry: bin/swagger validate swagger/orders.yaml
language: script

- repo: local
hooks:
- id: swagger
name: DPS Swagger
entry: bin/swagger validate swagger/dps.yaml
language: script

# Ensure markdown files have updated table of contents
- repo: local
hooks:
Expand All @@ -90,11 +98,23 @@ repos:
files: \.go$
exclude: vendor/

- repo: git://github.com/dnephin/pre-commit-golang
rev: v0.3.2
- repo: local
hooks:
# - id: go-vet uncomment when go@1.12 is supported for this hook
- id: go-lint
name: go lint
entry: bin/pre-commit-go-lint
language: script
files: \.go$
exclude: vendor/

# - repo: local
# hooks:
# - id: go-vet
# name: go vet
# entry: bin/pre-commit-go-vet
# language: script
# files: \.go$
# exclude: vendor/

- repo: local
hooks:
Expand Down
11 changes: 11 additions & 0 deletions bin/pre-commit-go-lint
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/usr/bin/env bash
#
# Capture and print stdout/stderr, since golint doesn't use proper exit codes
#
set -e

exec 5>&1
for file in "$@"; do
output="$(golint "$file" 2>&1 | tee /dev/fd/5)"
[[ -z "$output" ]]
done
11 changes: 11 additions & 0 deletions bin/pre-commit-go-vet
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/usr/bin/env bash
#
# Capture and print stdout/stderr, since golint doesn't use proper exit codes
#
set -e

exec 5>&1
for file in "$@"; do
output="$(go vet "$file" 2>&1 | tee /dev/fd/5)"
[[ -z "$output" ]]
done
2 changes: 2 additions & 0 deletions bin/run-e2e-test-docker
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,8 @@ $DOCKER_RUN \
-e DOD_CA_PACKAGE="/config/tls/Certificates_PKCS7_v5.4_DoD.der.p7b" \
-e DPS_AUTH_COOKIE_SECRET_KEY \
-e DPS_COOKIE_EXPIRES_IN_MINUTES \
-e EIA_KEY \
-e EIA_URL \
-e ENV="test" \
-e HERE_MAPS_APP_CODE \
-e HERE_MAPS_APP_ID \
Expand Down
30 changes: 15 additions & 15 deletions cmd/generate_shipment_edi/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -65,32 +65,32 @@ func main() {
sendToGex := v.GetBool("gex")
transactionName := v.GetString("transaction-name")
if shipmentIDString == "" || approverEmail == "" {
log.Fatal("Usage: go run cmd/generate_shipment_edi/main.go --shipmentID <29cb984e-c70d-46f0-926d-cd89e07a6ec3> --approver <officeuser1@example.com> --gex false")
logger.Fatal("Usage: go run cmd/generate_shipment_edi/main.go --shipmentID <29cb984e-c70d-46f0-926d-cd89e07a6ec3> --approver <officeuser1@example.com> --gex false")
}

db, err := pop.Connect("development")
if err != nil {
log.Fatal(err)
logger.Fatal(err.Error())
}

shipmentID := uuid.Must(uuid.FromString(shipmentIDString))
shipment, err := invoice.FetchShipmentForInvoice{DB: db}.Call(shipmentID)
if err != nil {
log.Fatal(err)
logger.Fatal(err.Error())
}

approver, err := models.FetchOfficeUserByEmail(db, approverEmail)
if err != nil {
log.Fatalf("Could not fetch office user with e-mail %s: %v", approverEmail, err)
logger.Fatal("Could not fetch office user with e-mail", zap.String("email", approverEmail), zap.Error(err))
}

var invoiceModel models.Invoice
verrs, err := invoice.CreateInvoice{DB: db, Clock: clock.New()}.Call(*approver, &invoiceModel, shipment)
if err != nil {
log.Fatal(err)
logger.Fatal(err.Error())
}
if verrs.HasAny() {
log.Fatal(verrs)
logger.Fatal(verrs.Error())
}

var sendToGexHTTP services.GexSender
Expand All @@ -113,7 +113,7 @@ func main() {
)
}

resp, err := processInvoice(db, shipment, invoiceModel, sendToGex, &transactionName, sendToGexHTTP)
resp, err := processInvoice(db, shipment, invoiceModel, sendToGex, &transactionName, sendToGexHTTP, logger)
if resp != nil {
fmt.Printf("status code: %v\n", resp.StatusCode)
}
Expand All @@ -122,27 +122,27 @@ func main() {
}
}

func processInvoice(db *pop.Connection, shipment models.Shipment, invoiceModel models.Invoice, sendToGex bool, transactionName *string, gexSender services.GexSender) (resp *http.Response, err error) {
func processInvoice(db *pop.Connection, shipment models.Shipment, invoiceModel models.Invoice, sendToGex bool, transactionName *string, gexSender services.GexSender, logger *zap.Logger) (resp *http.Response, err error) {
defer func() {
if err != nil || (resp != nil && resp.StatusCode != 200) {
// Update invoice record as failed
invoiceModel.Status = models.InvoiceStatusSUBMISSIONFAILURE
verrs, deferErr := db.ValidateAndSave(&invoiceModel)
if deferErr != nil {
log.Fatal(deferErr)
logger.Fatal(deferErr.Error())
}
if verrs.HasAny() {
log.Fatal(verrs)
logger.Fatal(verrs.Error())
}
} else {
// Update invoice record as submitted
shipmentLineItems := shipment.ShipmentLineItems
verrs, deferErr := invoice.UpdateInvoiceSubmitted{DB: db}.Call(&invoiceModel, shipmentLineItems)
if deferErr != nil {
log.Fatal(deferErr)
logger.Fatal(deferErr.Error())
}
if verrs.HasAny() {
log.Fatal(verrs)
logger.Fatal(verrs.Error())
}
}
}()
Expand All @@ -151,13 +151,13 @@ func processInvoice(db *pop.Connection, shipment models.Shipment, invoiceModel m
if sendToGex {
icnSequencer, err = sequence.NewRandomSequencer(ediinvoice.ICNRandomMin, ediinvoice.ICNRandomMax)
if err != nil {
log.Fatal("Could not create random sequencer for ICN", err)
logger.Fatal("Could not create random sequencer for ICN", zap.Error(err))
}
} else {
icnSequencer = sequence.NewDatabaseSequencer(db, ediinvoice.ICNSequenceName)
}

invoice858C, err := ediinvoice.Generate858C(shipment, invoiceModel, db, false, icnSequencer, clock.New())
invoice858C, err := ediinvoice.Generate858C(shipment, invoiceModel, db, false, icnSequencer, clock.New(), logger)
if err != nil {
return nil, err
}
Expand All @@ -170,7 +170,7 @@ func processInvoice(db *pop.Connection, shipment models.Shipment, invoiceModel m
}
resp, err := gexSender.SendToGex(invoice858CString, *transactionName)
if resp == nil || err != nil {
log.Fatal("Gex Sender had no response", err)
logger.Fatal("Gex Sender had no response", zap.Error(err))
}

fmt.Printf("status code: %v, error: %v\n", resp.StatusCode, err)
Expand Down
13 changes: 13 additions & 0 deletions cmd/webserver/logger.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
package main

import (
"go.uber.org/zap"
)

type logger interface {
Debug(msg string, fields ...zap.Field)
Info(msg string, fields ...zap.Field)
Error(msg string, fields ...zap.Field)
Warn(msg string, fields ...zap.Field)
Fatal(msg string, fields ...zap.Field)
}
Loading

0 comments on commit 5f41ea9

Please sign in to comment.