Upstream sync
This commit is contained in:
@@ -217,7 +217,7 @@ func (s *organizationService) AddOrganization(organization viewmodel.Organizatio
|
|||||||
address := entity.OrganizationAddress{
|
address := entity.OrganizationAddress{
|
||||||
InternalID: provider.MukID,
|
InternalID: provider.MukID,
|
||||||
Name: "Main Address",
|
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,
|
Latitude: lat,
|
||||||
Longitude: long,
|
Longitude: long,
|
||||||
CreatedUser: enOrg.Author,
|
CreatedUser: enOrg.Author,
|
||||||
@@ -248,5 +248,5 @@ func (s *organizationService) AddOrganization(organization viewmodel.Organizatio
|
|||||||
return viewmodel.Organization{}, nil
|
return viewmodel.Organization{}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return s.GetByUUID(enOrg.UUID, user)
|
return s.mapEntity.Organization.ToOrganizationModel(enOrg), nil
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package applicationservice
|
package applicationservice
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"bitbucket.org/nemt/nemt-portal-api/application/entitymapping"
|
"bitbucket.org/nemt/nemt-portal-api/application/entitymapping"
|
||||||
"bitbucket.org/nemt/nemt-portal-api/application/viewmodel"
|
"bitbucket.org/nemt/nemt-portal-api/application/viewmodel"
|
||||||
"bitbucket.org/nemt/nemt-portal-api/domain/service"
|
"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" {
|
if a.AddressType == "home" {
|
||||||
address, err := s.svc.Users.GetAddressByUUID(a.UUID)
|
address, err := s.svc.Users.GetAddressByUUID(a.UUID)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
fmt.Println("Application Visit: Address UUID: ", a.UUID)
|
||||||
|
fmt.Println("Application Visit: Address Error: ", err.Error())
|
||||||
return viewmodel.Visit{}, err
|
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)
|
provider, err := s.svc.Provider.GetByUUID(entity.Provider.ProviderUUID, entity.CreatedUser)
|
||||||
if err != nil {
|
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)
|
return viewmodel.Visit{}, errors.Wrap(err)
|
||||||
}
|
}
|
||||||
entity.Provider = provider
|
entity.Provider = provider
|
||||||
|
|
||||||
retVal, err := s.svc.Visits.Create(entity)
|
retVal, err := s.svc.Visits.Create(entity)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
fmt.Println("Application Visit: Create Visit Error: ", err.Error())
|
||||||
return viewmodel.Visit{}, errors.Wrap(err)
|
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)
|
eUser := s.mapEntity.User.ToUserEntity(user)
|
||||||
retVal, err := s.svc.Visits.GetByUUID(visitUUID, eUser)
|
retVal, err := s.svc.Visits.GetByUUID(visitUUID, eUser)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
fmt.Println("Visit Application: Error getting visit: ", err.Error())
|
||||||
return viewmodel.Visit{}, errors.Wrap(err)
|
return viewmodel.Visit{}, errors.Wrap(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
visitUser, err := s.svc.Users.GetByUUID(retVal.User.UUID, "US")
|
visitUser, err := s.svc.Users.GetByUUID(retVal.User.UUID, "US")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
fmt.Println("Visit Application: Error getting user: ", err.Error())
|
||||||
return viewmodel.Visit{}, errors.Wrap(err)
|
return viewmodel.Visit{}, errors.Wrap(err)
|
||||||
}
|
}
|
||||||
retVal.User = visitUser
|
retVal.User = visitUser
|
||||||
|
|
||||||
provider, err := s.svc.Provider.GetByUUID(retVal.Provider.ProviderUUID, eUser)
|
provider, err := s.svc.Provider.GetByUUID(retVal.Provider.ProviderUUID, eUser)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
fmt.Println("Visit Application: Error getting provider: ", err.Error())
|
||||||
return viewmodel.Visit{}, errors.Wrap(err)
|
return viewmodel.Visit{}, errors.Wrap(err)
|
||||||
}
|
}
|
||||||
retVal.Provider = provider
|
retVal.Provider = provider
|
||||||
|
|||||||
@@ -80,8 +80,6 @@ func (s bxeService) Get271(eligibility viewmodel.Eligibility) (bcbsimodel.Interc
|
|||||||
return bcbsimodel.Interchange271{}, err
|
return bcbsimodel.Interchange271{}, err
|
||||||
}
|
}
|
||||||
|
|
||||||
fmt.Println(resp)
|
|
||||||
|
|
||||||
if resp.QueryResult.HIPPA271.T271 != "" {
|
if resp.QueryResult.HIPPA271.T271 != "" {
|
||||||
xmlString := html.UnescapeString(resp.QueryResult.HIPPA271.T271)
|
xmlString := html.UnescapeString(resp.QueryResult.HIPPA271.T271)
|
||||||
xmlReader := strings.NewReader(xmlString)
|
xmlReader := strings.NewReader(xmlString)
|
||||||
|
|||||||
@@ -262,6 +262,7 @@ func (s *lyftService) RequestRide(rideRequest viewmodel.RideRequest) (viewmodel.
|
|||||||
|
|
||||||
if raw.Error != "" {
|
if raw.Error != "" {
|
||||||
fmt.Println("Error to call Lyft: ", raw.Error+" - "+raw.ErrorDescription)
|
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)
|
return viewmodel.RideRequest{}, errors.New("Lyft Error: " + raw.Error + " - " + raw.ErrorDescription)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,22 +12,23 @@ type VisitStatus struct {
|
|||||||
|
|
||||||
// Visit entity data
|
// Visit entity data
|
||||||
type Visit struct {
|
type Visit struct {
|
||||||
UUID string `json:"visit_uuid,omitempty"`
|
UUID string `json:"visit_uuid,omitempty"`
|
||||||
Status VisitStatus `json:"visit_status,omitempty"`
|
Status VisitStatus `json:"visit_status,omitempty"`
|
||||||
User User `json:"user,omitempty"`
|
User User `json:"user,omitempty"`
|
||||||
VisitDatetime time.Time `json:"visit_datetime,omitempty"`
|
VisitDatetime time.Time `json:"visit_datetime,omitempty"`
|
||||||
VisitDuration int64 `json:"visit_duration,omitempty"`
|
VisitDuration int64 `json:"visit_duration,omitempty"`
|
||||||
PickupDatetime time.Time `json:"pickup_datetime,omitempty"`
|
PickupDatetime time.Time `json:"pickup_datetime,omitempty"`
|
||||||
Notes *string `json:"notes,omitempty"`
|
Notes *string `json:"notes,omitempty"`
|
||||||
PickupAddressID int64 `json:"pickup_address_id,omitempty"`
|
PickupAddressID int64 `json:"pickup_address_id,omitempty"`
|
||||||
DestinationAddressID int64 `json:"destination_address_id,omitempty"`
|
DestinationAddressID int64 `json:"destination_address_id,omitempty"`
|
||||||
Pickup Location `json:"pickup,omitempty"`
|
Pickup Location `json:"pickup,omitempty"`
|
||||||
Provider ProviderResp `json:"provider,omitempty"`
|
Provider ProviderResp `json:"provider,omitempty"`
|
||||||
CreatedUser User `json:"created_user,omitempty"`
|
CreatedUser User `json:"created_user,omitempty"`
|
||||||
CreatedDate time.Time `json:"created,omitempty"`
|
CreatedDate time.Time `json:"created,omitempty"`
|
||||||
UpdatedDate time.Time `json:"updated,omitempty"`
|
UpdatedDate time.Time `json:"updated,omitempty"`
|
||||||
ReturnDate *time.Time `json:"return_date,omitempty"`
|
ReturnDate *time.Time `json:"return_date,omitempty"`
|
||||||
TripType TripType `json:"trip_type,omitempty"`
|
TripType TripType `json:"trip_type,omitempty"`
|
||||||
ExternalID string `json:"visit_external_id,omitempty"`
|
ExternalID string `json:"visit_external_id,omitempty"`
|
||||||
Rides []Ride `json:"rides,omitempty"`
|
Rides []Ride `json:"rides,omitempty"`
|
||||||
|
RawProvider ProviderResponse `json:"raw_provider,omitempty"`
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,11 @@ func (c *organizationRepo) getProfileQuery(user entity.User) (query string, wher
|
|||||||
if len(user.Profiles) > 0 {
|
if len(user.Profiles) > 0 {
|
||||||
for _, p := range user.Profiles {
|
for _, p := range user.Profiles {
|
||||||
switch p.Key {
|
switch p.Key {
|
||||||
|
case "VIRPT":
|
||||||
|
switch p.Organization.Type.Key {
|
||||||
|
case "provider":
|
||||||
|
return
|
||||||
|
}
|
||||||
case "AD", "BCBSIAD", "BDCAD", "PLANAD":
|
case "AD", "BCBSIAD", "BDCAD", "PLANAD":
|
||||||
switch p.Organization.Type.Key {
|
switch p.Organization.Type.Key {
|
||||||
case "techsupport", "bcbsi", "bcbsa":
|
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)
|
where = fmt.Sprintf(` AND (a.organization_uuid = '%s' OR f.organization_uuid = '%s') `, p.Organization.UUID, p.Organization.UUID)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
case "SP", "SPT", "VIRPT":
|
case "SP", "SPT":
|
||||||
switch p.Organization.Type.Key {
|
switch p.Organization.Type.Key {
|
||||||
case "techsupport", "bcbsi", "bcbsa":
|
case "techsupport", "bcbsi", "bcbsa":
|
||||||
return
|
return
|
||||||
@@ -341,7 +346,6 @@ func (c *organizationRepo) GetByUUID(organizationUUID string, user entity.User)
|
|||||||
}
|
}
|
||||||
|
|
||||||
query = c.getQuery() + query + " WHERE a.organization_uuid = ? " + where
|
query = c.getQuery() + query + " WHERE a.organization_uuid = ? " + where
|
||||||
|
|
||||||
return c.parseEntity(c.conn.QueryRow(query, organizationUUID))
|
return c.parseEntity(c.conn.QueryRow(query, organizationUUID))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -446,13 +450,16 @@ func (c *organizationRepo) SetOrganizationAddress(address entity.OrganizationAdd
|
|||||||
return entity.OrganizationAddress{}, errors.NewNotFoundError()
|
return entity.OrganizationAddress{}, errors.NewNotFoundError()
|
||||||
}
|
}
|
||||||
|
|
||||||
organization, err := c.GetByUUID(address.Organization.UUID, user)
|
if address.Organization.ID == 0 {
|
||||||
if err != nil {
|
organization, err := c.GetByUUID(address.Organization.UUID, user)
|
||||||
return entity.OrganizationAddress{}, err
|
if err != nil {
|
||||||
|
return entity.OrganizationAddress{}, err
|
||||||
|
}
|
||||||
|
address.Organization = &organization
|
||||||
}
|
}
|
||||||
|
|
||||||
UUID, _ := uuid.NewV4()
|
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 {
|
if err != nil {
|
||||||
return entity.OrganizationAddress{}, err
|
return entity.OrganizationAddress{}, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -605,7 +605,7 @@ func (c *userRepo) createUser(user entity.User) (int64, string, error) {
|
|||||||
|
|
||||||
func (c *userRepo) RemoveAddress(addressUUID string) error {
|
func (c *userRepo) RemoveAddress(addressUUID string) error {
|
||||||
const (
|
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)
|
_, err := c.conn.Exec(query, addressUUID)
|
||||||
|
|||||||
@@ -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)
|
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 {
|
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
|
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)
|
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 {
|
if err != nil {
|
||||||
|
fmt.Println("data.Visit: Error inserting visit: ", err.Error())
|
||||||
return retVal, err
|
return retVal, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package service
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"bitbucket.org/nemt/nemt-portal-api/domain/entity"
|
"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) {
|
func (s *providerService) GetByUUID(providerUUID string, user entity.User) (entity.Provider, error) {
|
||||||
provider, err := s.svc.db.Provider().GetByUUID(providerUUID, user)
|
provider, err := s.svc.db.Provider().GetByUUID(providerUUID, user)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
fmt.Println("providerService.GetByUUID: Provider UUID: ", providerUUID)
|
||||||
|
fmt.Println("providerService.GetByUUID: Provider Error: ", err.Error())
|
||||||
return provider, err
|
return provider, err
|
||||||
}
|
}
|
||||||
|
|
||||||
organization, err := s.svc.db.Organization().GetByTypeAndReferenceID("provider", provider.ProviderID, user)
|
organization, err := s.svc.db.Organization().GetByTypeAndReferenceID("provider", provider.ProviderID, user)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
fmt.Println("providerService.GetByUUID: OrganizationByType ProviderID : ", provider.ProviderID)
|
||||||
|
fmt.Println("providerService.GetByUUID: OrganizationByType Error: ", err.Error())
|
||||||
return provider, err
|
return provider, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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") {
|
if user.PhoneNumber != nil && len(*user.PhoneNumber) == 10 && !strings.Contains(*user.PhoneNumber, "+1") {
|
||||||
phoneNumber := fmt.Sprintf("+1%s", *user.PhoneNumber)
|
phoneNumber := fmt.Sprintf("+1%s", *user.PhoneNumber)
|
||||||
user.PhoneNumber = &phoneNumber
|
user.PhoneNumber = &phoneNumber
|
||||||
|
} else {
|
||||||
|
return routeutils.ResponseAPIFieldValidationError(ctx, "phonenumber", "Phone number is required")
|
||||||
}
|
}
|
||||||
|
|
||||||
user, err = c.svc.Users.Create(user, authUser)
|
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)
|
phoneNumber := fmt.Sprintf("+1%s", *eligibility.User.PhoneNumber)
|
||||||
eligibility.User.PhoneNumber = &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)
|
err = c.svc.Users.UpdateLogin(user)
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import (
|
|||||||
"bitbucket.org/nemt/nemt-portal-api/application/third/eligibility/bcbsi"
|
"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/third/npd/npdmodel"
|
||||||
"bitbucket.org/nemt/nemt-portal-api/application/viewmodel"
|
"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/infra/config"
|
||||||
"bitbucket.org/nemt/nemt-portal-api/server/router/routeutils"
|
"bitbucket.org/nemt/nemt-portal-api/server/router/routeutils"
|
||||||
"bitbucket.org/nemt/nemt-portal-api/server/validation"
|
"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)
|
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 {
|
if err != nil {
|
||||||
return routeutils.HandleAPIError(ctx, err)
|
return routeutils.HandleAPIError(ctx, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if user.PhoneNumber == nil || len(*user.PhoneNumber) == 0 {
|
if user.PhoneNumber == nil || len(*user.PhoneNumber) == 0 {
|
||||||
return routeutils.ResponseAPIValidationError(ctx, "phonenumber is required")
|
return routeutils.ResponseAPIValidationError(ctx, "phonenumber is required")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,26 +93,24 @@ func (c *controller) handleRide(ctx echo.Context) error {
|
|||||||
ride.Visit.User.Type = &subscriber
|
ride.Visit.User.Type = &subscriber
|
||||||
|
|
||||||
var provider viewmodel.ProviderResp
|
var provider viewmodel.ProviderResp
|
||||||
if authUser.Profiles[0].Key == "VIRPT" {
|
provider, err = c.svc.Provider.GetByUUID(ride.Visit.Provider.ProviderUUID, authUser)
|
||||||
provider, err = c.svc.Provider.GetByOrganization(authUser.Profiles[0].Organization.UUID, authUser)
|
|
||||||
} else {
|
|
||||||
provider, err = c.svc.Provider.GetByUUID(ride.Visit.Provider.ProviderUUID, authUser)
|
|
||||||
}
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return routeutils.HandleAPIError(ctx, err)
|
return routeutils.HandleAPIError(ctx, err)
|
||||||
}
|
}
|
||||||
|
visit.Provider = provider
|
||||||
|
|
||||||
eligibility := viewmodel.Eligibility{}
|
eligibility := viewmodel.Eligibility{}
|
||||||
eligibility.Provider.ProviderNPI = provider.InternalID
|
eligibility.Provider.ProviderNPI = provider.InternalID
|
||||||
eligibility.Provider.ProviderName = provider.OrganizatioName
|
eligibility.Provider.ProviderName = provider.OrganizatioName
|
||||||
eligibility.TrackingID = "1234567"
|
eligibility.TrackingID = c.rangeIn(1000000, 9999999)
|
||||||
eligibility.Subscriber.SubscriberID = *ride.Visit.User.Member
|
eligibility.Subscriber.SubscriberID = *ride.Visit.User.Member
|
||||||
eligibility.Subscriber.PatientType = *ride.Visit.User.Type
|
eligibility.Subscriber.PatientType = *ride.Visit.User.Type
|
||||||
eligibility.Subscriber.Name.First = ride.Visit.User.First
|
eligibility.Subscriber.Name.First = ride.Visit.User.First
|
||||||
eligibility.Subscriber.Name.Last = ride.Visit.User.Last
|
eligibility.Subscriber.Name.Last = ride.Visit.User.Last
|
||||||
eligibility.Subscriber.DemographicInfo.DateOfBirth = *ride.Visit.User.BirthDate
|
eligibility.Subscriber.DemographicInfo.DateOfBirth = *ride.Visit.User.BirthDate
|
||||||
eligibility.Subscriber.DemographicInfo.Gender = *ride.Visit.User.Gender
|
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"}
|
eligibility.ServiceInfo.ServiceTypeCodes = []string{"30"}
|
||||||
|
|
||||||
resp271, err := c.bcbsi.BXE.Get271(eligibility)
|
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
|
address.Longitude = result[0].Geometry.Location.Lng
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(user.Addresses) > 0 {
|
if address.Latitude != 0 && address.Longitude != 0 {
|
||||||
for _, a := range user.Addresses {
|
if len(user.Addresses) > 0 {
|
||||||
if a.AddressType == "home" {
|
for _, a := range user.Addresses {
|
||||||
err := c.svc.Users.RemoveAddress(a.UUID)
|
if a.AddressType == "home" {
|
||||||
if err != nil {
|
err := c.svc.Users.RemoveAddress(a.UUID)
|
||||||
fmt.Println("Error to remove old address: ", err.Error())
|
if err != nil {
|
||||||
return routeutils.HandleAPIError(ctx, err)
|
fmt.Println("Error to remove old address: ", err.Error())
|
||||||
|
return routeutils.HandleAPIError(ctx, err)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
address, err = c.svc.Users.SaveAddress(address)
|
address, err = c.svc.Users.SaveAddress(address)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("Error to save address: ", err.Error())
|
fmt.Println("Error to save address: ", err.Error())
|
||||||
return routeutils.HandleAPIError(ctx, err)
|
return routeutils.HandleAPIError(ctx, err)
|
||||||
|
}
|
||||||
|
user.Addresses = append(user.Addresses, address)
|
||||||
}
|
}
|
||||||
user.Addresses = append(user.Addresses, address)
|
|
||||||
|
|
||||||
homeAddress := viewmodel.Address{}
|
homeAddress := viewmodel.Address{}
|
||||||
for _, a := range visit.User.Addresses {
|
for _, a := range visit.User.Addresses {
|
||||||
@@ -422,41 +422,64 @@ func (c *controller) handle(ctx echo.Context) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var provider viewmodel.ProviderResp
|
var provider viewmodel.ProviderResp
|
||||||
if authUser.Profiles[0].Key == "VIRPT" {
|
provider, err = c.svc.Provider.GetByNPI(visit.RawProvider.FivePartKeyGroups[0].ProviderNum, authUser)
|
||||||
provider, err = c.svc.Provider.GetByOrganization(authUser.Profiles[0].Organization.UUID, authUser)
|
|
||||||
} else {
|
|
||||||
provider, err = c.svc.Provider.GetByUUID(visit.Provider.ProviderUUID, authUser)
|
|
||||||
}
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return routeutils.HandleAPIError(ctx, err)
|
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 {
|
if validationErrors := validation.ValidateVisit(&visit, &authUser); len(validationErrors) > 0 {
|
||||||
return routeutils.ResponseAPICustomValidationError(ctx, "visit validation failed", validationErrors)
|
return routeutils.ResponseAPICustomValidationError(ctx, "visit validation failed", validationErrors)
|
||||||
}
|
}
|
||||||
|
|
||||||
eligibility := viewmodel.Eligibility{}
|
// eligibility := viewmodel.Eligibility{}
|
||||||
eligibility.Provider.ProviderNPI = provider.InternalID
|
// eligibility.Provider.ProviderNPI = provider.InternalID
|
||||||
eligibility.Provider.ProviderName = provider.OrganizatioName
|
// eligibility.Provider.ProviderName = provider.OrganizatioName
|
||||||
eligibility.TrackingID = c.rangeIn(1000000, 9999999)
|
// eligibility.TrackingID = c.rangeIn(1000000, 9999999)
|
||||||
eligibility.Subscriber.SubscriberID = *visit.User.Member
|
// eligibility.Subscriber.SubscriberID = *visit.User.Member
|
||||||
eligibility.Subscriber.PatientType = *visit.User.Type
|
// eligibility.Subscriber.PatientType = *visit.User.Type
|
||||||
eligibility.Subscriber.Name.First = visit.User.First
|
// eligibility.Subscriber.Name.First = visit.User.First
|
||||||
eligibility.Subscriber.Name.Last = visit.User.Last
|
// eligibility.Subscriber.Name.Last = visit.User.Last
|
||||||
eligibility.Subscriber.DemographicInfo.DateOfBirth = *visit.User.BirthDate
|
// eligibility.Subscriber.DemographicInfo.DateOfBirth = *visit.User.BirthDate
|
||||||
eligibility.Subscriber.DemographicInfo.Gender = *visit.User.Gender
|
// eligibility.Subscriber.DemographicInfo.Gender = *visit.User.Gender
|
||||||
eligibility.ServiceInfo.DateOfService = time.Now()
|
// loc, _ := time.LoadLocation("America/Chicago")
|
||||||
eligibility.ServiceInfo.ServiceTypeCodes = []string{"30"}
|
// eligibility.ServiceInfo.DateOfService = time.Now().In(loc)
|
||||||
|
// eligibility.ServiceInfo.ServiceTypeCodes = []string{"30"}
|
||||||
|
|
||||||
resp, err := c.bcbsi.BXE.Get271(eligibility)
|
// resp, err := c.bcbsi.BXE.Get271(eligibility)
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
fmt.Println(err)
|
// fmt.Println("Error to get eligibility: ", err.Error())
|
||||||
return routeutils.ResponseAPIValidationError(ctx, err.Error())
|
// return routeutils.ResponseAPIValidationError(ctx, err.Error())
|
||||||
}
|
// }
|
||||||
|
|
||||||
user, err := c.svc.Users.GetByMemberID(*visit.User.Member)
|
user, err := c.svc.Users.GetByMemberID(*visit.User.Member)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println("Error to get user by memberID: ", err.Error())
|
||||||
return routeutils.HandleAPIError(ctx, err)
|
return routeutils.HandleAPIError(ctx, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -498,12 +521,14 @@ func (c *controller) handle(ctx echo.Context) error {
|
|||||||
|
|
||||||
profile, err := c.svc.Profile.GetByKey("US")
|
profile, err := c.svc.Profile.GetByKey("US")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
fmt.Println("Error to get Profile: ", err.Error())
|
||||||
return routeutils.HandleAPIError(ctx, err)
|
return routeutils.HandleAPIError(ctx, err)
|
||||||
}
|
}
|
||||||
user.Profiles = append(user.Profiles, profile)
|
user.Profiles = append(user.Profiles, profile)
|
||||||
|
|
||||||
user, err = c.svc.Users.Create(user, authUser)
|
user, err = c.svc.Users.Create(user, authUser)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
fmt.Println("Error to create the user: ", err.Error())
|
||||||
return routeutils.HandleAPIError(ctx, err)
|
return routeutils.HandleAPIError(ctx, err)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -521,62 +546,65 @@ func (c *controller) handle(ctx echo.Context) error {
|
|||||||
|
|
||||||
err = c.svc.Users.UpdateLogin(user)
|
err = c.svc.Users.UpdateLogin(user)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
fmt.Println("Error to update login: ", err.Error())
|
||||||
return routeutils.HandleAPIError(ctx, err)
|
return routeutils.HandleAPIError(ctx, err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
address := viewmodel.Address{}
|
// address := viewmodel.Address{}
|
||||||
header := resp.Division.HealthCareEligibilityResponse.LoopHL0030[0].HL_0460[0].HL_0890[0].NM1_0920[0].N3_0950
|
// 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
|
// body := resp.Division.HealthCareEligibilityResponse.LoopHL0030[0].HL_0460[0].HL_0890[0].NM1_0920[0].N4_0960
|
||||||
zipCode := strings.TrimSpace(body.N403)
|
// zipCode := strings.TrimSpace(body.N403)
|
||||||
|
|
||||||
address.AddressTypeName = "Home"
|
// address.AddressTypeName = "Home"
|
||||||
address.AddressType = "home"
|
// address.AddressType = "home"
|
||||||
address.Name = fmt.Sprintf("%s, %s", header.N301, body.N401)
|
// address.Name = fmt.Sprintf("%s, %s", header.N301, body.N401)
|
||||||
address.Address = fmt.Sprintf("%s, %s (%s)", header.N301, body.N401, zipCode)
|
// address.Address = fmt.Sprintf("%s, %s (%s)", header.N301, body.N401, zipCode)
|
||||||
address.CreatedUserUUID = authUser.ID
|
// address.CreatedUserUUID = authUser.ID
|
||||||
address.User = user
|
// address.User = user
|
||||||
address.Type = "provider"
|
// address.Type = "provider"
|
||||||
|
|
||||||
googleMapsAPI, err := maps.NewClient(maps.WithClientIDAndSignature("gme-bluecrossandblue1", "msqgD-jdqCyR0M_1u5C1HION5iI="))
|
// googleMapsAPI, err := maps.NewClient(maps.WithClientIDAndSignature("gme-bluecrossandblue1", "msqgD-jdqCyR0M_1u5C1HION5iI="))
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
fmt.Println("Error to instantiate googles api: ", err.Error())
|
// fmt.Println("Error to instantiate googles api: ", err.Error())
|
||||||
return routeutils.HandleAPIError(ctx, err)
|
// return routeutils.HandleAPIError(ctx, err)
|
||||||
}
|
// }
|
||||||
|
|
||||||
r := &maps.GeocodingRequest{
|
// r := &maps.GeocodingRequest{
|
||||||
Address: address.Address + " " + body.N402 + ", " + zipCode,
|
// Address: address.Address + " " + body.N402 + ", " + zipCode,
|
||||||
}
|
// }
|
||||||
|
|
||||||
result, err := googleMapsAPI.Geocode(context.Background(), r)
|
// result, err := googleMapsAPI.Geocode(context.Background(), r)
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
fmt.Println("Error to instantiate googles api: ", err.Error())
|
// fmt.Println("Error to instantiate googles api: ", err.Error())
|
||||||
return routeutils.HandleAPIError(ctx, err)
|
// return routeutils.HandleAPIError(ctx, err)
|
||||||
}
|
// }
|
||||||
|
|
||||||
if len(result) > 0 {
|
// if len(result) > 0 {
|
||||||
address.Latitude = result[0].Geometry.Location.Lat
|
// address.Latitude = result[0].Geometry.Location.Lat
|
||||||
address.Longitude = result[0].Geometry.Location.Lng
|
// address.Longitude = result[0].Geometry.Location.Lng
|
||||||
}
|
// }
|
||||||
|
|
||||||
if len(user.Addresses) > 0 {
|
// if address.Latitude != 0 && address.Longitude != 0 {
|
||||||
for _, a := range user.Addresses {
|
// if len(user.Addresses) > 0 {
|
||||||
if a.AddressType == "home" {
|
// for _, a := range user.Addresses {
|
||||||
err := c.svc.Users.RemoveAddress(a.UUID)
|
// if a.AddressType == "home" {
|
||||||
if err != nil {
|
// err := c.svc.Users.RemoveAddress(a.UUID)
|
||||||
fmt.Println("Error to remove old address: ", err.Error())
|
// if err != nil {
|
||||||
return routeutils.HandleAPIError(ctx, err)
|
// fmt.Println("Error to remove old address: ", err.Error())
|
||||||
}
|
// return routeutils.HandleAPIError(ctx, err)
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
|
|
||||||
address, err = c.svc.Users.SaveAddress(address)
|
// address, err = c.svc.Users.SaveAddress(address)
|
||||||
if err != nil {
|
// if err != nil {
|
||||||
fmt.Println("Error to save address: ", err.Error())
|
// fmt.Println("Error saving address: ", err.Error())
|
||||||
return routeutils.HandleAPIError(ctx, err)
|
// return routeutils.HandleAPIError(ctx, err)
|
||||||
}
|
// }
|
||||||
user.Addresses = append(user.Addresses, address)
|
// user.Addresses = append(user.Addresses, address)
|
||||||
|
// }
|
||||||
|
|
||||||
visit.TripType = viewmodel.TripType{
|
visit.TripType = viewmodel.TripType{
|
||||||
Key: "no_trip",
|
Key: "no_trip",
|
||||||
@@ -588,6 +616,7 @@ func (c *controller) handle(ctx echo.Context) error {
|
|||||||
|
|
||||||
visit, err = c.svc.Visits.Save(visit)
|
visit, err = c.svc.Visits.Save(visit)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
fmt.Println("Error saving visit: ", err.Error())
|
||||||
return routeutils.HandleAPIError(ctx, err)
|
return routeutils.HandleAPIError(ctx, err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -18,7 +18,8 @@ func authSkipper(ctx echo.Context) bool {
|
|||||||
strings.Contains(path, "/v1/ext") ||
|
strings.Contains(path, "/v1/ext") ||
|
||||||
strings.Contains(path, "/v1/notification/ws") ||
|
strings.Contains(path, "/v1/notification/ws") ||
|
||||||
strings.HasPrefix(path, "/v1/lyfthook") ||
|
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
|
// appSkipper is the default skipper for the application routes
|
||||||
|
|||||||
Reference in New Issue
Block a user