Upstream sync

This commit is contained in:
Senad Uka
2018-05-28 08:31:58 +02:00
parent 94229831e0
commit d8737a558b
13 changed files with 180 additions and 122 deletions

View File

@@ -217,7 +217,7 @@ func (s *organizationService) AddOrganization(organization viewmodel.Organizatio
address := entity.OrganizationAddress{
InternalID: provider.MukID,
Name: "Main Address",
Address: fmt.Sprintf("%s %s - %s, %s (%s)", provider.StreetName1, provider.StreetName2, provider.CityName, provider.State, provider.ZipCode),
Address: fmt.Sprintf("%s %s - %s, %s (%s)", provider.StreetName1, provider.StreetName2, provider.CityName, provider.State, provider.ZipCode[:5]),
Latitude: lat,
Longitude: long,
CreatedUser: enOrg.Author,
@@ -248,5 +248,5 @@ func (s *organizationService) AddOrganization(organization viewmodel.Organizatio
return viewmodel.Organization{}, nil
}
return s.GetByUUID(enOrg.UUID, user)
return s.mapEntity.Organization.ToOrganizationModel(enOrg), nil
}

View File

@@ -1,6 +1,8 @@
package applicationservice
import (
"fmt"
"bitbucket.org/nemt/nemt-portal-api/application/entitymapping"
"bitbucket.org/nemt/nemt-portal-api/application/viewmodel"
"bitbucket.org/nemt/nemt-portal-api/domain/service"
@@ -27,6 +29,8 @@ func (s *visitService) Save(visit viewmodel.Visit) (viewmodel.Visit, error) {
if a.AddressType == "home" {
address, err := s.svc.Users.GetAddressByUUID(a.UUID)
if err != nil {
fmt.Println("Application Visit: Address UUID: ", a.UUID)
fmt.Println("Application Visit: Address Error: ", err.Error())
return viewmodel.Visit{}, err
}
@@ -41,12 +45,15 @@ func (s *visitService) Save(visit viewmodel.Visit) (viewmodel.Visit, error) {
provider, err := s.svc.Provider.GetByUUID(entity.Provider.ProviderUUID, entity.CreatedUser)
if err != nil {
fmt.Println("Application Visit: Provider UUID: ", entity.Provider.ProviderUUID)
fmt.Println("Application Visit: Provider Error: ", err.Error())
return viewmodel.Visit{}, errors.Wrap(err)
}
entity.Provider = provider
retVal, err := s.svc.Visits.Create(entity)
if err != nil {
fmt.Println("Application Visit: Create Visit Error: ", err.Error())
return viewmodel.Visit{}, errors.Wrap(err)
}
@@ -80,17 +87,20 @@ func (s *visitService) GetByUUID(visitUUID string, user viewmodel.User) (viewmod
eUser := s.mapEntity.User.ToUserEntity(user)
retVal, err := s.svc.Visits.GetByUUID(visitUUID, eUser)
if err != nil {
fmt.Println("Visit Application: Error getting visit: ", err.Error())
return viewmodel.Visit{}, errors.Wrap(err)
}
visitUser, err := s.svc.Users.GetByUUID(retVal.User.UUID, "US")
if err != nil {
fmt.Println("Visit Application: Error getting user: ", err.Error())
return viewmodel.Visit{}, errors.Wrap(err)
}
retVal.User = visitUser
provider, err := s.svc.Provider.GetByUUID(retVal.Provider.ProviderUUID, eUser)
if err != nil {
fmt.Println("Visit Application: Error getting provider: ", err.Error())
return viewmodel.Visit{}, errors.Wrap(err)
}
retVal.Provider = provider

View File

@@ -80,8 +80,6 @@ func (s bxeService) Get271(eligibility viewmodel.Eligibility) (bcbsimodel.Interc
return bcbsimodel.Interchange271{}, err
}
fmt.Println(resp)
if resp.QueryResult.HIPPA271.T271 != "" {
xmlString := html.UnescapeString(resp.QueryResult.HIPPA271.T271)
xmlReader := strings.NewReader(xmlString)

View File

@@ -262,6 +262,7 @@ func (s *lyftService) RequestRide(rideRequest viewmodel.RideRequest) (viewmodel.
if raw.Error != "" {
fmt.Println("Error to call Lyft: ", raw.Error+" - "+raw.ErrorDescription)
fmt.Println("Full body error: ", string(body))
return viewmodel.RideRequest{}, errors.New("Lyft Error: " + raw.Error + " - " + raw.ErrorDescription)
}

View File

@@ -12,22 +12,23 @@ type VisitStatus struct {
// Visit entity data
type Visit struct {
UUID string `json:"visit_uuid,omitempty"`
Status VisitStatus `json:"visit_status,omitempty"`
User User `json:"user,omitempty"`
VisitDatetime time.Time `json:"visit_datetime,omitempty"`
VisitDuration int64 `json:"visit_duration,omitempty"`
PickupDatetime time.Time `json:"pickup_datetime,omitempty"`
Notes *string `json:"notes,omitempty"`
PickupAddressID int64 `json:"pickup_address_id,omitempty"`
DestinationAddressID int64 `json:"destination_address_id,omitempty"`
Pickup Location `json:"pickup,omitempty"`
Provider ProviderResp `json:"provider,omitempty"`
CreatedUser User `json:"created_user,omitempty"`
CreatedDate time.Time `json:"created,omitempty"`
UpdatedDate time.Time `json:"updated,omitempty"`
ReturnDate *time.Time `json:"return_date,omitempty"`
TripType TripType `json:"trip_type,omitempty"`
ExternalID string `json:"visit_external_id,omitempty"`
Rides []Ride `json:"rides,omitempty"`
UUID string `json:"visit_uuid,omitempty"`
Status VisitStatus `json:"visit_status,omitempty"`
User User `json:"user,omitempty"`
VisitDatetime time.Time `json:"visit_datetime,omitempty"`
VisitDuration int64 `json:"visit_duration,omitempty"`
PickupDatetime time.Time `json:"pickup_datetime,omitempty"`
Notes *string `json:"notes,omitempty"`
PickupAddressID int64 `json:"pickup_address_id,omitempty"`
DestinationAddressID int64 `json:"destination_address_id,omitempty"`
Pickup Location `json:"pickup,omitempty"`
Provider ProviderResp `json:"provider,omitempty"`
CreatedUser User `json:"created_user,omitempty"`
CreatedDate time.Time `json:"created,omitempty"`
UpdatedDate time.Time `json:"updated,omitempty"`
ReturnDate *time.Time `json:"return_date,omitempty"`
TripType TripType `json:"trip_type,omitempty"`
ExternalID string `json:"visit_external_id,omitempty"`
Rides []Ride `json:"rides,omitempty"`
RawProvider ProviderResponse `json:"raw_provider,omitempty"`
}

View File

@@ -24,6 +24,11 @@ func (c *organizationRepo) getProfileQuery(user entity.User) (query string, wher
if len(user.Profiles) > 0 {
for _, p := range user.Profiles {
switch p.Key {
case "VIRPT":
switch p.Organization.Type.Key {
case "provider":
return
}
case "AD", "BCBSIAD", "BDCAD", "PLANAD":
switch p.Organization.Type.Key {
case "techsupport", "bcbsi", "bcbsa":
@@ -44,7 +49,7 @@ func (c *organizationRepo) getProfileQuery(user entity.User) (query string, wher
where = fmt.Sprintf(` AND (a.organization_uuid = '%s' OR f.organization_uuid = '%s') `, p.Organization.UUID, p.Organization.UUID)
return
}
case "SP", "SPT", "VIRPT":
case "SP", "SPT":
switch p.Organization.Type.Key {
case "techsupport", "bcbsi", "bcbsa":
return
@@ -341,7 +346,6 @@ func (c *organizationRepo) GetByUUID(organizationUUID string, user entity.User)
}
query = c.getQuery() + query + " WHERE a.organization_uuid = ? " + where
return c.parseEntity(c.conn.QueryRow(query, organizationUUID))
}
@@ -446,13 +450,16 @@ func (c *organizationRepo) SetOrganizationAddress(address entity.OrganizationAdd
return entity.OrganizationAddress{}, errors.NewNotFoundError()
}
organization, err := c.GetByUUID(address.Organization.UUID, user)
if err != nil {
return entity.OrganizationAddress{}, err
if address.Organization.ID == 0 {
organization, err := c.GetByUUID(address.Organization.UUID, user)
if err != nil {
return entity.OrganizationAddress{}, err
}
address.Organization = &organization
}
UUID, _ := uuid.NewV4()
result, err := c.conn.Exec(query, UUID.String(), organization.ID, address.InternalID, address.Name, address.Address, address.Description, address.Latitude, address.Longitude, address.CreatedUser.ID, address.UpdatedUser.ID)
result, err := c.conn.Exec(query, UUID.String(), address.Organization.ID, address.InternalID, address.Name, address.Address, address.Description, address.Latitude, address.Longitude, address.CreatedUser.ID, address.UpdatedUser.ID)
if err != nil {
return entity.OrganizationAddress{}, err
}

View File

@@ -605,7 +605,7 @@ func (c *userRepo) createUser(user entity.User) (int64, string, error) {
func (c *userRepo) RemoveAddress(addressUUID string) error {
const (
query = "DELETE FROM tab_address WHERE address_uuid = ?;"
query = "UPDATE tab_address SET active = 0 WHERE address_uuid = ?;"
)
_, err := c.conn.Exec(query, addressUUID)

View File

@@ -190,12 +190,13 @@ func (c *visitRepo) Create(visit entity.Visit) (entity.Visit, error) {
row := c.conn.QueryRow(statusQuery, retVal.Status.Key, retVal.User.UUID, retVal.CreatedUser.UUID, retVal.TripType.Key)
if err := row.Scan(&retVal.Status.ID, &retVal.Status.Key, &retVal.Status.Value, &retVal.User.ID, &retVal.User.Name, &retVal.CreatedUser.ID, &retVal.CreatedUser.Name, &retVal.TripType.ID, &retVal.TripType.Key, &retVal.TripType.Value); err != nil {
fmt.Println("Error to get base data: ", err.Error())
fmt.Println("data.Visit: Error getting base data: ", err.Error())
return retVal, err
}
results, err := c.conn.Exec(query, retVal.UUID, retVal.Status.ID, retVal.User.ID, retVal.VisitDatetime, retVal.PickupDatetime, retVal.Notes, retVal.CreatedUser.ID, toNullInt64(retVal.VisitDuration), retVal.ExternalID, returnDate, retVal.TripType.ID, retVal.Pickup.ID, retVal.PickupAddressID, retVal.DestinationAddressID, retVal.Provider.ProviderID)
if err != nil {
fmt.Println("data.Visit: Error inserting visit: ", err.Error())
return retVal, err
}

View File

@@ -2,6 +2,7 @@ package service
import (
"errors"
"fmt"
"bitbucket.org/nemt/nemt-portal-api/domain/entity"
)
@@ -61,11 +62,15 @@ func (s *providerService) GetByMukID(mukID string, user entity.User) (entity.Pro
func (s *providerService) GetByUUID(providerUUID string, user entity.User) (entity.Provider, error) {
provider, err := s.svc.db.Provider().GetByUUID(providerUUID, user)
if err != nil {
fmt.Println("providerService.GetByUUID: Provider UUID: ", providerUUID)
fmt.Println("providerService.GetByUUID: Provider Error: ", err.Error())
return provider, err
}
organization, err := s.svc.db.Organization().GetByTypeAndReferenceID("provider", provider.ProviderID, user)
if err != nil {
fmt.Println("providerService.GetByUUID: OrganizationByType ProviderID : ", provider.ProviderID)
fmt.Println("providerService.GetByUUID: OrganizationByType Error: ", err.Error())
return provider, err
}

View File

@@ -167,6 +167,8 @@ func (c *controller) handleEligibility(ctx echo.Context) error {
if user.PhoneNumber != nil && len(*user.PhoneNumber) == 10 && !strings.Contains(*user.PhoneNumber, "+1") {
phoneNumber := fmt.Sprintf("+1%s", *user.PhoneNumber)
user.PhoneNumber = &phoneNumber
} else {
return routeutils.ResponseAPIFieldValidationError(ctx, "phonenumber", "Phone number is required")
}
user, err = c.svc.Users.Create(user, authUser)
@@ -183,7 +185,10 @@ func (c *controller) handleEligibility(ctx echo.Context) error {
phoneNumber := fmt.Sprintf("+1%s", *eligibility.User.PhoneNumber)
eligibility.User.PhoneNumber = &phoneNumber
}
user.PhoneNumber = eligibility.User.PhoneNumber
if len(*eligibility.User.PhoneNumber) > 0 {
user.PhoneNumber = eligibility.User.PhoneNumber
}
}
err = c.svc.Users.UpdateLogin(user)

View File

@@ -10,7 +10,6 @@ import (
"bitbucket.org/nemt/nemt-portal-api/application/third/eligibility/bcbsi"
"bitbucket.org/nemt/nemt-portal-api/application/third/npd/npdmodel"
"bitbucket.org/nemt/nemt-portal-api/application/viewmodel"
"bitbucket.org/nemt/nemt-portal-api/infra/auth"
"bitbucket.org/nemt/nemt-portal-api/infra/config"
"bitbucket.org/nemt/nemt-portal-api/server/router/routeutils"
"bitbucket.org/nemt/nemt-portal-api/server/validation"
@@ -45,10 +44,11 @@ func (c *controller) handle(ctx echo.Context) error {
return routeutils.HandleAPIError(ctx, err)
}
authUser, err := auth.GetUserDetail(ctx, c.cfg)
authUser, err := c.svc.Users.GetByUUID("573c70ff-733d-11e7-ba8f-0a6ad3fcdeaa", "")
if err != nil {
return routeutils.HandleAPIError(ctx, err)
}
if user.PhoneNumber == nil || len(*user.PhoneNumber) == 0 {
return routeutils.ResponseAPIValidationError(ctx, "phonenumber is required")
}

View File

@@ -93,26 +93,24 @@ func (c *controller) handleRide(ctx echo.Context) error {
ride.Visit.User.Type = &subscriber
var provider viewmodel.ProviderResp
if authUser.Profiles[0].Key == "VIRPT" {
provider, err = c.svc.Provider.GetByOrganization(authUser.Profiles[0].Organization.UUID, authUser)
} else {
provider, err = c.svc.Provider.GetByUUID(ride.Visit.Provider.ProviderUUID, authUser)
}
provider, err = c.svc.Provider.GetByUUID(ride.Visit.Provider.ProviderUUID, authUser)
if err != nil {
return routeutils.HandleAPIError(ctx, err)
}
visit.Provider = provider
eligibility := viewmodel.Eligibility{}
eligibility.Provider.ProviderNPI = provider.InternalID
eligibility.Provider.ProviderName = provider.OrganizatioName
eligibility.TrackingID = "1234567"
eligibility.TrackingID = c.rangeIn(1000000, 9999999)
eligibility.Subscriber.SubscriberID = *ride.Visit.User.Member
eligibility.Subscriber.PatientType = *ride.Visit.User.Type
eligibility.Subscriber.Name.First = ride.Visit.User.First
eligibility.Subscriber.Name.Last = ride.Visit.User.Last
eligibility.Subscriber.DemographicInfo.DateOfBirth = *ride.Visit.User.BirthDate
eligibility.Subscriber.DemographicInfo.Gender = *ride.Visit.User.Gender
eligibility.ServiceInfo.DateOfService = time.Now()
loc, _ := time.LoadLocation("America/Chicago")
eligibility.ServiceInfo.DateOfService = time.Now().In(loc)
eligibility.ServiceInfo.ServiceTypeCodes = []string{"30"}
resp271, err := c.bcbsi.BXE.Get271(eligibility)
@@ -155,24 +153,26 @@ func (c *controller) handleRide(ctx echo.Context) error {
address.Longitude = result[0].Geometry.Location.Lng
}
if len(user.Addresses) > 0 {
for _, a := range user.Addresses {
if a.AddressType == "home" {
err := c.svc.Users.RemoveAddress(a.UUID)
if err != nil {
fmt.Println("Error to remove old address: ", err.Error())
return routeutils.HandleAPIError(ctx, err)
if address.Latitude != 0 && address.Longitude != 0 {
if len(user.Addresses) > 0 {
for _, a := range user.Addresses {
if a.AddressType == "home" {
err := c.svc.Users.RemoveAddress(a.UUID)
if err != nil {
fmt.Println("Error to remove old address: ", err.Error())
return routeutils.HandleAPIError(ctx, err)
}
}
}
}
}
address, err = c.svc.Users.SaveAddress(address)
if err != nil {
fmt.Println("Error to save address: ", err.Error())
return routeutils.HandleAPIError(ctx, err)
address, err = c.svc.Users.SaveAddress(address)
if err != nil {
fmt.Println("Error to save address: ", err.Error())
return routeutils.HandleAPIError(ctx, err)
}
user.Addresses = append(user.Addresses, address)
}
user.Addresses = append(user.Addresses, address)
homeAddress := viewmodel.Address{}
for _, a := range visit.User.Addresses {
@@ -422,41 +422,64 @@ func (c *controller) handle(ctx echo.Context) error {
}
var provider viewmodel.ProviderResp
if authUser.Profiles[0].Key == "VIRPT" {
provider, err = c.svc.Provider.GetByOrganization(authUser.Profiles[0].Organization.UUID, authUser)
} else {
provider, err = c.svc.Provider.GetByUUID(visit.Provider.ProviderUUID, authUser)
}
provider, err = c.svc.Provider.GetByNPI(visit.RawProvider.FivePartKeyGroups[0].ProviderNum, authUser)
if err != nil {
return routeutils.HandleAPIError(ctx, err)
}
if provider.ProviderUUID == "" {
org := viewmodel.Organization{
Type: viewmodel.OrganizationType{
Key: "provider",
Name: "Provider",
},
Name: visit.RawProvider.OrgName,
Description: visit.RawProvider.OrgName,
Main: false,
Author: authUser,
LastEditor: authUser,
Reference: visit.RawProvider,
}
org, err = c.svc.Organization.AddOrganization(org, authUser)
if err != nil {
return routeutils.HandleAPIError(ctx, err)
}
provider, err = c.svc.Provider.GetByOrganization(org.UUID, authUser)
if err != nil {
return routeutils.HandleAPIError(ctx, err)
}
}
visit.Provider = provider
if validationErrors := validation.ValidateVisit(&visit, &authUser); len(validationErrors) > 0 {
return routeutils.ResponseAPICustomValidationError(ctx, "visit validation failed", validationErrors)
}
eligibility := viewmodel.Eligibility{}
eligibility.Provider.ProviderNPI = provider.InternalID
eligibility.Provider.ProviderName = provider.OrganizatioName
eligibility.TrackingID = c.rangeIn(1000000, 9999999)
eligibility.Subscriber.SubscriberID = *visit.User.Member
eligibility.Subscriber.PatientType = *visit.User.Type
eligibility.Subscriber.Name.First = visit.User.First
eligibility.Subscriber.Name.Last = visit.User.Last
eligibility.Subscriber.DemographicInfo.DateOfBirth = *visit.User.BirthDate
eligibility.Subscriber.DemographicInfo.Gender = *visit.User.Gender
eligibility.ServiceInfo.DateOfService = time.Now()
eligibility.ServiceInfo.ServiceTypeCodes = []string{"30"}
// eligibility := viewmodel.Eligibility{}
// eligibility.Provider.ProviderNPI = provider.InternalID
// eligibility.Provider.ProviderName = provider.OrganizatioName
// eligibility.TrackingID = c.rangeIn(1000000, 9999999)
// eligibility.Subscriber.SubscriberID = *visit.User.Member
// eligibility.Subscriber.PatientType = *visit.User.Type
// eligibility.Subscriber.Name.First = visit.User.First
// eligibility.Subscriber.Name.Last = visit.User.Last
// eligibility.Subscriber.DemographicInfo.DateOfBirth = *visit.User.BirthDate
// eligibility.Subscriber.DemographicInfo.Gender = *visit.User.Gender
// loc, _ := time.LoadLocation("America/Chicago")
// eligibility.ServiceInfo.DateOfService = time.Now().In(loc)
// eligibility.ServiceInfo.ServiceTypeCodes = []string{"30"}
resp, err := c.bcbsi.BXE.Get271(eligibility)
if err != nil {
fmt.Println(err)
return routeutils.ResponseAPIValidationError(ctx, err.Error())
}
// resp, err := c.bcbsi.BXE.Get271(eligibility)
// if err != nil {
// fmt.Println("Error to get eligibility: ", err.Error())
// return routeutils.ResponseAPIValidationError(ctx, err.Error())
// }
user, err := c.svc.Users.GetByMemberID(*visit.User.Member)
if err != nil {
fmt.Println(err)
fmt.Println("Error to get user by memberID: ", err.Error())
return routeutils.HandleAPIError(ctx, err)
}
@@ -498,12 +521,14 @@ func (c *controller) handle(ctx echo.Context) error {
profile, err := c.svc.Profile.GetByKey("US")
if err != nil {
fmt.Println("Error to get Profile: ", err.Error())
return routeutils.HandleAPIError(ctx, err)
}
user.Profiles = append(user.Profiles, profile)
user, err = c.svc.Users.Create(user, authUser)
if err != nil {
fmt.Println("Error to create the user: ", err.Error())
return routeutils.HandleAPIError(ctx, err)
}
} else {
@@ -521,62 +546,65 @@ func (c *controller) handle(ctx echo.Context) error {
err = c.svc.Users.UpdateLogin(user)
if err != nil {
fmt.Println("Error to update login: ", err.Error())
return routeutils.HandleAPIError(ctx, err)
}
}
address := viewmodel.Address{}
header := resp.Division.HealthCareEligibilityResponse.LoopHL0030[0].HL_0460[0].HL_0890[0].NM1_0920[0].N3_0950
body := resp.Division.HealthCareEligibilityResponse.LoopHL0030[0].HL_0460[0].HL_0890[0].NM1_0920[0].N4_0960
zipCode := strings.TrimSpace(body.N403)
// address := viewmodel.Address{}
// header := resp.Division.HealthCareEligibilityResponse.LoopHL0030[0].HL_0460[0].HL_0890[0].NM1_0920[0].N3_0950
// body := resp.Division.HealthCareEligibilityResponse.LoopHL0030[0].HL_0460[0].HL_0890[0].NM1_0920[0].N4_0960
// zipCode := strings.TrimSpace(body.N403)
address.AddressTypeName = "Home"
address.AddressType = "home"
address.Name = fmt.Sprintf("%s, %s", header.N301, body.N401)
address.Address = fmt.Sprintf("%s, %s (%s)", header.N301, body.N401, zipCode)
address.CreatedUserUUID = authUser.ID
address.User = user
address.Type = "provider"
// address.AddressTypeName = "Home"
// address.AddressType = "home"
// address.Name = fmt.Sprintf("%s, %s", header.N301, body.N401)
// address.Address = fmt.Sprintf("%s, %s (%s)", header.N301, body.N401, zipCode)
// address.CreatedUserUUID = authUser.ID
// address.User = user
// address.Type = "provider"
googleMapsAPI, err := maps.NewClient(maps.WithClientIDAndSignature("gme-bluecrossandblue1", "msqgD-jdqCyR0M_1u5C1HION5iI="))
if err != nil {
fmt.Println("Error to instantiate googles api: ", err.Error())
return routeutils.HandleAPIError(ctx, err)
}
// googleMapsAPI, err := maps.NewClient(maps.WithClientIDAndSignature("gme-bluecrossandblue1", "msqgD-jdqCyR0M_1u5C1HION5iI="))
// if err != nil {
// fmt.Println("Error to instantiate googles api: ", err.Error())
// return routeutils.HandleAPIError(ctx, err)
// }
r := &maps.GeocodingRequest{
Address: address.Address + " " + body.N402 + ", " + zipCode,
}
// r := &maps.GeocodingRequest{
// Address: address.Address + " " + body.N402 + ", " + zipCode,
// }
result, err := googleMapsAPI.Geocode(context.Background(), r)
if err != nil {
fmt.Println("Error to instantiate googles api: ", err.Error())
return routeutils.HandleAPIError(ctx, err)
}
// result, err := googleMapsAPI.Geocode(context.Background(), r)
// if err != nil {
// fmt.Println("Error to instantiate googles api: ", err.Error())
// return routeutils.HandleAPIError(ctx, err)
// }
if len(result) > 0 {
address.Latitude = result[0].Geometry.Location.Lat
address.Longitude = result[0].Geometry.Location.Lng
}
// if len(result) > 0 {
// address.Latitude = result[0].Geometry.Location.Lat
// address.Longitude = result[0].Geometry.Location.Lng
// }
if len(user.Addresses) > 0 {
for _, a := range user.Addresses {
if a.AddressType == "home" {
err := c.svc.Users.RemoveAddress(a.UUID)
if err != nil {
fmt.Println("Error to remove old address: ", err.Error())
return routeutils.HandleAPIError(ctx, err)
}
}
}
}
// if address.Latitude != 0 && address.Longitude != 0 {
// if len(user.Addresses) > 0 {
// for _, a := range user.Addresses {
// if a.AddressType == "home" {
// err := c.svc.Users.RemoveAddress(a.UUID)
// if err != nil {
// fmt.Println("Error to remove old address: ", err.Error())
// return routeutils.HandleAPIError(ctx, err)
// }
// }
// }
// }
address, err = c.svc.Users.SaveAddress(address)
if err != nil {
fmt.Println("Error to save address: ", err.Error())
return routeutils.HandleAPIError(ctx, err)
}
user.Addresses = append(user.Addresses, address)
// address, err = c.svc.Users.SaveAddress(address)
// if err != nil {
// fmt.Println("Error saving address: ", err.Error())
// return routeutils.HandleAPIError(ctx, err)
// }
// user.Addresses = append(user.Addresses, address)
// }
visit.TripType = viewmodel.TripType{
Key: "no_trip",
@@ -588,6 +616,7 @@ func (c *controller) handle(ctx echo.Context) error {
visit, err = c.svc.Visits.Save(visit)
if err != nil {
fmt.Println("Error saving visit: ", err.Error())
return routeutils.HandleAPIError(ctx, err)
}

View File

@@ -18,7 +18,8 @@ func authSkipper(ctx echo.Context) bool {
strings.Contains(path, "/v1/ext") ||
strings.Contains(path, "/v1/notification/ws") ||
strings.HasPrefix(path, "/v1/lyfthook") ||
strings.HasPrefix(path, "/v1/docs"))
strings.HasPrefix(path, "/v1/docs") ||
strings.HasPrefix(path, "/v1/selfregister"))
}
// appSkipper is the default skipper for the application routes