Skip to content

Commit

Permalink
chore: purge edi service implementation (#96)
Browse files Browse the repository at this point in the history
  • Loading branch information
Salaton committed Aug 25, 2021
1 parent 9177e48 commit 7fe370e
Show file tree
Hide file tree
Showing 23 changed files with 18 additions and 1,039 deletions.
7 changes: 0 additions & 7 deletions pkg/onboarding/application/common/common.go
Expand Up @@ -87,11 +87,4 @@ const (

// UpdateCRMContact is the topicID for CRM contact updates
UpdateCRMContact = "crm.contact.update"

// LinkCoverTopic is the topicID for cover linking topic
LinkCoverTopic = "covers.link"

// LinkEDIMemberCoverTopic is the topic ID for cover linking topic of an EDI member who has
// received a message with the link to download bewell
LinkEDIMemberCoverTopic = "edi.covers.link"
)
33 changes: 0 additions & 33 deletions pkg/onboarding/application/dto/input.go
Expand Up @@ -323,21 +323,6 @@ type AgentFilterInput struct {
PhoneNumber string `json:"phoneNumber"`
}

// CoverInput is used to add covers
type CoverInput struct {
PayerSladeCode int `json:"payerSladeCode"`
MemberNumber string `json:"memberNumber"`
UID string `json:"uid"`
PushToken []string `json:"pushToken"`
}

// LinkCoverPubSubMessage is a `cover linking` pub sub message struct
type LinkCoverPubSubMessage struct {
PhoneNumber string `json:"phoneNumber"`
UID string `json:"uid"`
PushToken []string `json:"pushToken"`
}

//CustomerPubSubMessagePayload is an `onboarding` PubSub message struct for commontools
type CustomerPubSubMessagePayload struct {
CustomerPayload dm.CustomerPayload `json:"customerPayload"`
Expand All @@ -359,15 +344,6 @@ type USSDEvent struct {
USSDEventName string `firestore:"ussdEventName"`
}

// CoverLinkingEvent is a cover linking struct for cover linking events(started or completed)
type CoverLinkingEvent struct {
ID string `firestore:"id"`
CoverLinkingEventTime *time.Time `firestore:"coverLinkingEventTime"`
CoverStatus string `firestore:"coverStatus"`
MemberNumber string `firestore:"memberNumber"`
PhoneNumber string `firestore:"phoneNumber"`
}

// AssignRolePayload is the payload used to assign a role to a user
type AssignRolePayload struct {
UserID string `json:"userID"`
Expand Down Expand Up @@ -412,15 +388,6 @@ type ProfileSuspensionInput struct {
Reason string `json:"reason"`
}

// EDICoverLinkingPubSubMessage holds the data required to add a cover to the profile
// of EDI members who received a message with the bewell link an went ahead to
// download the app
type EDICoverLinkingPubSubMessage struct {
PayerSladeCode int `json:"payersladecode"`
MemberNumber string `json:"membernumber"`
PhoneNumber string `json:"phonenumber"`
}

// CheckPermissionPayload is the payload used when checking if a user is authorized
type CheckPermissionPayload struct {
UID *string `json:"uid"`
Expand Down
27 changes: 0 additions & 27 deletions pkg/onboarding/application/utils/validators.go
Expand Up @@ -139,33 +139,6 @@ func ValidateUSSDEvent(input *dto.USSDEvent) (*dto.USSDEvent, error) {
}, nil
}

//ValidateCoverLinkingEvent validates a coverlinking event
func ValidateCoverLinkingEvent(input *dto.CoverLinkingEvent) (*dto.CoverLinkingEvent, error) {
if input.MemberNumber == "" {
return nil, fmt.Errorf("events member cannot be empty")
}

if input.PhoneNumber == "" {
return nil, fmt.Errorf("event's phone number cannot be empty")
}

if input.CoverLinkingEventTime == nil {
return nil, fmt.Errorf("event's date and time cannot be empty")
}

if input.CoverStatus == "" {
return nil, fmt.Errorf("event's status cannot be empty")
}

return &dto.CoverLinkingEvent{
ID: input.ID,
CoverLinkingEventTime: input.CoverLinkingEventTime,
CoverStatus: input.CoverStatus,
MemberNumber: input.MemberNumber,
PhoneNumber: input.PhoneNumber,
}, nil
}

//ValidateUSSDDetails checks if the phonenumber supplied is valid , that a session ID is provided
// and returns valid USSD session details.
func ValidateUSSDDetails(payload *dto.SessionDetails) (*dto.SessionDetails, error) {
Expand Down
61 changes: 0 additions & 61 deletions pkg/onboarding/infrastructure/database/fb/firebase.go
Expand Up @@ -50,7 +50,6 @@ const (
firebaseExchangeRefreshTokenURL = "https://securetoken.googleapis.com/v1/token?key="
marketingDataCollectionName = "marketing_data"
ussdEventsCollectionName = "ussd_events"
coverLinkingEventsCollectionName = "coverlinking_events"
rolesRevocationCollectionName = "role_revocations"
rolesCollectionName = "user_roles"
)
Expand Down Expand Up @@ -156,12 +155,6 @@ func (fr Repository) GetMarketingDataCollectionName() string {
return suffixed
}

// GetCoverLinkingEventsCollectionName ...
func (fr Repository) GetCoverLinkingEventsCollectionName() string {
suffixed := firebasetools.SuffixCollection(coverLinkingEventsCollectionName)
return suffixed
}

// GetRolesCollectionName ...
func (fr Repository) GetRolesCollectionName() string {
suffixed := firebasetools.SuffixCollection(rolesCollectionName)
Expand Down Expand Up @@ -3552,60 +3545,6 @@ func (fr *Repository) SaveUSSDEvent(
return event, nil
}

// SaveCoverAutolinkingEvents saves cover linking events into the database
func (fr *Repository) SaveCoverAutolinkingEvents(
ctx context.Context,
input *dto.CoverLinkingEvent,
) (*dto.CoverLinkingEvent, error) {
ctx, span := tracer.Start(ctx, "SaveCoverAutolinkingEvents")
defer span.End()

coverLinkingEvent := &dto.CoverLinkingEvent{
ID: input.ID,
CoverLinkingEventTime: input.CoverLinkingEventTime,
CoverStatus: input.CoverStatus,
MemberNumber: input.MemberNumber,
PhoneNumber: input.PhoneNumber,
}

validatedCoverLinkingEvent, err := utils.ValidateCoverLinkingEvent(coverLinkingEvent)
if err != nil {
utils.RecordSpanError(span, err)
return nil, err
}

createCommand := &CreateCommand{
CollectionName: fr.GetCoverLinkingEventsCollectionName(),
Data: validatedCoverLinkingEvent,
}

docRef, err := fr.FirestoreClient.Create(ctx, createCommand)
if err != nil {
utils.RecordSpanError(span, err)
return nil, exceptions.InternalServerError(err)
}

getCoverlinkingEventQuery := &GetSingleQuery{
CollectionName: fr.GetCoverLinkingEventsCollectionName(),
Value: docRef.ID,
}

docsnapshot, err := fr.FirestoreClient.Get(ctx, getCoverlinkingEventQuery)
if err != nil {
utils.RecordSpanError(span, err)
return nil, exceptions.InternalServerError(err)
}

event := &dto.CoverLinkingEvent{}
err = docsnapshot.DataTo(event)
if err != nil {
utils.RecordSpanError(span, err)
return nil, exceptions.InternalServerError(err)
}

return event, nil
}

// AddAITSessionDetails saves diallers session details in the database
func (fr *Repository) AddAITSessionDetails(
ctx context.Context,
Expand Down
Expand Up @@ -35,7 +35,6 @@ import (
"cloud.google.com/go/pubsub"
"firebase.google.com/go/auth"

"github.com/savannahghi/onboarding/pkg/onboarding/infrastructure/services/edi"
"github.com/savannahghi/onboarding/pkg/onboarding/infrastructure/services/engagement"

crmExt "github.com/savannahghi/onboarding/pkg/onboarding/infrastructure/services/crm"
Expand Down Expand Up @@ -147,12 +146,10 @@ func InitializeTestService(ctx context.Context) (*interactor.Interactor, error)

// Initialize ISC clients
engagementClient := utils.NewInterServiceClient(engagementService, ext)
ediClient := utils.NewInterServiceClient(ediService, ext)

firestoreExtension := fb.NewFirestoreClientExtension(fsc)
fr := fb.NewFirebaseRepository(firestoreExtension, fbc)
engage := engagement.NewServiceEngagementImpl(engagementClient, ext)
edi := edi.NewEdiService(ediClient, fr)
// hubspot usecases
hubspotService := hubspot.NewHubSpotService()
hubspotfr, err := hubspotRepo.NewHubSpotFirebaseRepository(ctx, hubspotService)
Expand All @@ -165,7 +162,6 @@ func InitializeTestService(ctx context.Context) (*interactor.Interactor, error)
pubSubClient,
ext,
crmExt,
edi,
fr,
)
if err != nil {
Expand All @@ -178,7 +174,7 @@ func InitializeTestService(ctx context.Context) (*interactor.Interactor, error)
login := usecases.NewLoginUseCases(fr, profile, ext, pinExt)
survey := usecases.NewSurveyUseCases(fr, ext)
userpin := usecases.NewUserPinUseCase(fr, profile, ext, pinExt, engage)
su := usecases.NewSignUpUseCases(fr, profile, userpin, supplier, ext, engage, ps, edi)
su := usecases.NewSignUpUseCases(fr, profile, userpin, supplier, ext, engage, ps)

return &interactor.Interactor{
Onboarding: profile,
Expand All @@ -189,7 +185,6 @@ func InitializeTestService(ctx context.Context) (*interactor.Interactor, error)
UserPIN: userpin,
Engagement: engage,
PubSub: ps,
EDI: edi,
CrmExt: crmExt,
}, nil
}
Expand Down Expand Up @@ -4095,86 +4090,6 @@ func TestRepository_SaveUSSDEvent_IntegrationTest(t *testing.T) {
}
}

func TestRepository_SaveCoverAutolinkingEvents_Integration_Test(t *testing.T) {
ctx := context.Background()
fsc, fbc := InitializeTestFirebaseClient(ctx)
if fsc == nil {
t.Errorf("failed to initialize test FireStore client")
return
}
if fbc == nil {
t.Errorf("failed to initialize test FireBase client")
return
}
firestoreExtension := fb.NewFirestoreClientExtension(fsc)
firestoreDB := fb.NewFirebaseRepository(firestoreExtension, fbc)

currentTime := time.Now()

type args struct {
ctx context.Context
input *dto.CoverLinkingEvent
}
tests := []struct {
name string
args args
want *dto.CoverLinkingEvent
wantErr bool
}{
{
name: "Happy case",
args: args{
ctx: ctx,
input: &dto.CoverLinkingEvent{
ID: uuid.NewString(),
CoverLinkingEventTime: &currentTime,
CoverStatus: "started autolinking",
MemberNumber: "877386",
PhoneNumber: "+254703754685",
},
},
wantErr: false,
},

{
name: "Sad case",
args: args{
ctx: ctx,
input: &dto.CoverLinkingEvent{
ID: uuid.NewString(),
CoverLinkingEventTime: &currentTime,
CoverStatus: "cover autolinking started",
MemberNumber: "",
PhoneNumber: "+254703754685",
},
},
want: nil,
wantErr: true,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := firestoreDB.SaveCoverAutolinkingEvents(tt.args.ctx, tt.args.input)
if (err != nil) != tt.wantErr {
t.Errorf(
"Repository.SaveCoverAutolinkingEvents() error = %v, wantErr %v",
err,
tt.wantErr,
)
return
}
if !tt.wantErr && got == nil {
t.Errorf(
"Repository.SaveCoverAutolinkingEvents() error = %v, wantErr %v",
err,
tt.wantErr,
)
return
}
})
}
}

func TestRepository_GetAITDetails_Integration(t *testing.T) {
ctx := context.Background()
fsc, fbc := InitializeTestFirebaseClient(ctx)
Expand Down
58 changes: 0 additions & 58 deletions pkg/onboarding/infrastructure/services/edi/mock/service_mock.go

This file was deleted.

0 comments on commit 7fe370e

Please sign in to comment.