-
Notifications
You must be signed in to change notification settings - Fork 38
/
addresses.go
69 lines (61 loc) · 2.12 KB
/
addresses.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
package internalapi
import (
"github.com/go-openapi/runtime/middleware"
"github.com/gofrs/uuid"
"go.uber.org/zap"
"github.com/transcom/mymove/pkg/appcontext"
addressop "github.com/transcom/mymove/pkg/gen/internalapi/internaloperations/addresses"
"github.com/transcom/mymove/pkg/gen/internalmessages"
"github.com/transcom/mymove/pkg/handlers"
"github.com/transcom/mymove/pkg/handlers/internalapi/internal/payloads"
"github.com/transcom/mymove/pkg/models"
)
func addressModelFromPayload(rawAddress *internalmessages.Address) *models.Address {
if rawAddress == nil {
return nil
}
if rawAddress.County == nil {
rawAddress.County = models.StringPointer("")
}
return &models.Address{
StreetAddress1: *rawAddress.StreetAddress1,
StreetAddress2: rawAddress.StreetAddress2,
StreetAddress3: rawAddress.StreetAddress3,
City: *rawAddress.City,
State: *rawAddress.State,
PostalCode: *rawAddress.PostalCode,
Country: rawAddress.Country,
County: *rawAddress.County,
}
}
func updateAddressWithPayload(a *models.Address, payload *internalmessages.Address) {
a.StreetAddress1 = *payload.StreetAddress1
a.StreetAddress2 = payload.StreetAddress2
a.StreetAddress3 = payload.StreetAddress3
a.City = *payload.City
a.State = *payload.State
a.PostalCode = *payload.PostalCode
a.Country = payload.Country
if payload.County == nil {
a.County = ""
} else {
a.County = *payload.County
}
}
// ShowAddressHandler returns an address
type ShowAddressHandler struct {
handlers.HandlerConfig
}
// Handle returns a address given an addressId
func (h ShowAddressHandler) Handle(params addressop.ShowAddressParams) middleware.Responder {
return h.AuditableAppContextFromRequestWithErrors(params.HTTPRequest,
func(appCtx appcontext.AppContext) (middleware.Responder, error) {
addressID, err := uuid.FromString(params.AddressID.String())
if err != nil {
appCtx.Logger().Error("Finding address", zap.Error(err))
}
address := models.FetchAddressByID(appCtx.DB(), &addressID)
addressPayload := payloads.Address(address)
return addressop.NewShowAddressOK().WithPayload(addressPayload), nil
})
}