domain

package
v0.0.41 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 15, 2022 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// StaticBase is the default path at which static assets are hosted
	StaticBase = "https://assets.healthcloud.co.ke"

	RoleNavActionIcon     = StaticBase + "/actions/roles_navaction.png"
	ConsumerNavActionIcon = StaticBase + "/actions/consumer_navaction.png"
	HelpNavActionIcon     = StaticBase + "/actions/help_navaction.png"
	HomeNavActionIcon     = StaticBase + "/actions/home_navaction.png"
	PartnerNavActionIcon  = StaticBase + "/actions/partner_navaction.png"
	PatientNavActionIcon  = StaticBase + "/actions/patient_navaction.png"
	RequestNavActionIcon  = StaticBase + "/actions/request_navaction.png"
)

Icon links for navactions

View Source
const (
	HomeRoute                  = "/home"
	PatientRegistrationRoute   = "/addPatient"
	PatientIdentificationRoute = "/patients"
	GetHelpRouteRoute          = "/helpCenter"
	RequestsRoute              = "/admin"
	RoleViewRoute              = "/viewCreatedRolesPage"
	RoleCreationRoute          = "/createRoleStepOne"
	RoleAssignmentRoute        = "/bewellUserIdentification"
)

On Tap Routes

View Source
const (
	HomeNavActionTitle       = "Home"
	HomeNavActionDescription = "Home Navigation action"

	HelpNavActionTitle       = "Help"
	HelpNavActionDescription = "Help Navigation action"

	RoleNavActionTitle      = "Role Management"
	RoleViewActionTitle     = "View Roles"
	RoleCreationActionTitle = "Create Role"
	RoleAssignActionTitle   = "Assign Role"

	PatientNavActionTitle            = "Patients"
	PatientNavActionDescription      = "Patient Navigation action"
	PatientRegistrationActionTitle   = "Register Patient"
	PatientIdentificationActionTitle = "Search Patient"

	RequestsNavActionTitle       = "Requests"
	RequestsNavActionDescription = "Requests Navigation action"

	ConsumerNavActionTitle       = "Consumers"
	ConsumerNavActionDescription = "Consumer Navigation action"

	PartnerNavActionTitle       = "Partners"
	PartnerNavActionDescription = "Partner Navigation action"
)

Navigation actions

View Source
const (
	HomeNavActionSequence = iota + 1

	RoleNavActionSequence
	RoleCreationNavActionSequence
	RoleViewingNavActionSequence
	RoleAssignNavActionSequence

	RequestsNavActionSequence

	PartnerNavactionSequence

	ConsumerNavactionSequence

	PatientNavActionSequence
	PatientSearchNavActionSequence
	PatientRegistrationNavActionSequence

	HelpNavActionSequence
)

Determines the sequence number of a navigation action Order of the constants matters!!

Variables

View Source
var (
	// HomeNavAction is the primary home button
	HomeNavAction = NavigationAction{
		Group:              HomeGroup,
		Title:              HomeNavActionTitle,
		OnTapRoute:         HomeRoute,
		Icon:               HomeNavActionIcon,
		RequiredPermission: nil,
		SequenceNumber:     HomeNavActionSequence,
	}

	// HelpNavAction navigation action to help and FAQs page
	HelpNavAction = NavigationAction{
		Group:              HelpGroup,
		Title:              HelpNavActionTitle,
		OnTapRoute:         GetHelpRouteRoute,
		Icon:               HelpNavActionIcon,
		RequiredPermission: nil,
		SequenceNumber:     HelpNavActionSequence,
	}
)

the structure and definition of all navigation actions

View Source
var (
	//RoleNavActions this is the parent navigation action for role resource
	// it has nested navigation actions below
	RoleNavActions = NavigationAction{
		Group:              RoleGroup,
		Title:              RoleNavActionTitle,
		Icon:               RoleNavActionIcon,
		RequiredPermission: &profileutils.CanViewRole,
		SequenceNumber:     RoleNavActionSequence,
	}

	//RoleCreationNavAction a child of the RoleNavActions
	RoleCreationNavAction = NavigationAction{
		Group:              RoleGroup,
		Title:              RoleCreationActionTitle,
		OnTapRoute:         RoleCreationRoute,
		RequiredPermission: &profileutils.CanCreateRole,
		HasParent:          true,
		SequenceNumber:     RoleCreationNavActionSequence,
	}

	//RoleViewNavAction a child of the RoleNavActions
	RoleViewNavAction = NavigationAction{
		Group:              RoleGroup,
		Title:              RoleViewActionTitle,
		OnTapRoute:         RoleViewRoute,
		RequiredPermission: &profileutils.CanViewRole,
		HasParent:          true,
		SequenceNumber:     RoleViewingNavActionSequence,
	}

	//RoleAssignNavAction a child of the RoleNavActions
	RoleAssignNavAction = NavigationAction{
		Group:              RoleGroup,
		Title:              RoleAssignActionTitle,
		OnTapRoute:         RoleAssignmentRoute,
		RequiredPermission: &profileutils.CanAssignRole,
		HasParent:          true,
		SequenceNumber:     RoleAssignNavActionSequence,
	}
)
View Source
var (
	//PatientNavActions this is the parent navigation action for patient resource
	// it has nested navigation actions below
	PatientNavActions = NavigationAction{
		Group:              PatientGroup,
		Title:              PatientNavActionTitle,
		Icon:               PatientNavActionIcon,
		RequiredPermission: &profileutils.CanViewPatient,
		SequenceNumber:     PatientNavActionSequence,
	}

	//PatientRegistrationNavAction a child of the PatientNavActions
	PatientRegistrationNavAction = NavigationAction{
		Group:              PatientGroup,
		Title:              PatientRegistrationActionTitle,
		OnTapRoute:         PatientRegistrationRoute,
		RequiredPermission: &profileutils.CanCreatePatient,
		HasParent:          true,
		SequenceNumber:     PatientRegistrationNavActionSequence,
	}

	//PatientIdentificationNavAction a child of the PatientNavActions
	PatientIdentificationNavAction = NavigationAction{
		Group:              PatientGroup,
		Title:              PatientIdentificationActionTitle,
		OnTapRoute:         PatientIdentificationRoute,
		RequiredPermission: &profileutils.CanIdentifyPatient,
		HasParent:          true,
		SequenceNumber:     PatientSearchNavActionSequence,
	}
)
View Source
var (
	// TimeLocation ...
	TimeLocation, _ = time.LoadLocation("Africa/Nairobi")

	// TimeFormatStr date time string format
	TimeFormatStr = "2006-01-02T15:04:05+03:00"

	// Repo the env to identify which repo to use
	Repo = "REPOSITORY"

	//FirebaseRepository is the value of the env when using firebase
	FirebaseRepository = "firebase"

	//PostgresRepository is the value of the env when using postgres
	PostgresRepository = "postgres"
)

AllFivePointRating is a list of all known ratings

AllNavigationActions is a grouping of all navigation actions

View Source
var (
	//ConsumerNavActions is the navigation actions to consumer management
	ConsumerNavActions = NavigationAction{
		Group:              ConsumerGroup,
		Title:              ConsumerNavActionTitle,
		Icon:               ConsumerNavActionIcon,
		RequiredPermission: &profileutils.CanViewConsumers,
		SequenceNumber:     ConsumerNavactionSequence,
	}
)
View Source
var (

	// KYCNavActions is the navigation acction to KYC processing
	KYCNavActions = NavigationAction{
		Group:              KYCGroup,
		Title:              RequestsNavActionTitle,
		OnTapRoute:         RequestsRoute,
		Icon:               RequestNavActionIcon,
		RequiredPermission: &profileutils.CanProcessKYC,
		SequenceNumber:     RequestsNavActionSequence,
	}
)
View Source
var (
	//PartnerNavActions is the navigation actions to partner management
	PartnerNavActions = NavigationAction{
		Group:              PartnerGroup,
		Title:              PartnerNavActionTitle,
		Icon:               PartnerNavActionIcon,
		RequiredPermission: &profileutils.CanViewPartner,
		SequenceNumber:     PartnerNavactionSequence,
	}
)
View Source
var WelcomeMessage = "" /* 142-byte string literal not displayed */

WelcomeMessage is the default message formart for sending temporary PIN to users

Functions

This section is empty.

Types

type ChangePINRequest

type ChangePINRequest struct {
	PhoneNumber string `json:"phoneNumber"`
	PIN         string `json:"pin"`
	OTP         string `json:"otp"`
}

ChangePINRequest payload to set or change PIN information

type FivePointRating

type FivePointRating string

FivePointRating is used to implement

const (
	FivePointRatingPoor           FivePointRating = "POOR"
	FivePointRatingUnsatisfactory FivePointRating = "UNSATISFACTORY"
	FivePointRatingAverage        FivePointRating = "AVERAGE"
	FivePointRatingSatisfactory   FivePointRating = "SATISFACTORY"
	FivePointRatingExcellent      FivePointRating = "EXCELLENT"
)

known ratings

func (FivePointRating) IsValid

func (e FivePointRating) IsValid() bool

IsValid returns true for valid ratings

func (FivePointRating) MarshalGQL

func (e FivePointRating) MarshalGQL(w io.Writer)

MarshalGQL converts the rating into a valid JSON string

func (FivePointRating) String

func (e FivePointRating) String() string

func (*FivePointRating) UnmarshalGQL

func (e *FivePointRating) UnmarshalGQL(v interface{}) error

UnmarshalGQL converts the input, if valid, into a rating value

type Microservice

type Microservice struct {
	ID          string `json:"id"          firestore:"id"`
	Name        string `json:"name"        firestore:"name"`
	URL         string `json:"url"         firestore:"url"`
	Description string `json:"description" firestore:"description"`
}

Microservice identifies a micro-service that conforms to the Apollo Graphqql federation specification. These microservices are composed by an Apollo Gateway into a single data graph.

func (*Microservice) GetID

func (m *Microservice) GetID() firebasetools.ID

GetID returns the micro-service's ID

func (*Microservice) IsEntity

func (m *Microservice) IsEntity()

IsEntity marks the struct as an Apollo Federation entity

func (*Microservice) IsNode

func (m *Microservice) IsNode()

IsNode marks this model as a GraphQL Relay Node

func (*Microservice) SetID

func (m *Microservice) SetID(id string)

SetID sets the microservice's ID

type MicroserviceStatus

type MicroserviceStatus struct {
	Service *Microservice `json:"service"`
	Active  bool          `json:"active"`
}

MicroserviceStatus denotes the status of a deployed microservice shows if the revision is serving HTTP request

type NavigationAction struct {
	Group              NavigationGroup          `json:"code"`
	Title              string                   `json:"title"`
	OnTapRoute         string                   `json:"onTapRoute"`
	Icon               string                   `json:"icon"`
	Favorite           bool                     `json:"favorite"`
	HasParent          bool                     `json:"isParent"`
	Nested             []interface{}            `json:"nested"`
	RequiredPermission *profileutils.Permission `json:"requires"`

	// Sequence Number assigns a priority to an action
	// the number is used when sorting/ordering navigation actions
	// Actions with a higher sequence number appear at the top i.e ascending order
	SequenceNumber int `json:"sequenceNumber"`
}

NavigationAction is the menu rendered to PRO users for navigating the app

type NavigationGroup string

NavigationGroup is the grouping of related navigation actions based on resource

const (
	//HomeGroup groups all actions under the home resource
	HomeGroup NavigationGroup = "home"

	//RoleGroup groups all actions under the role resource
	RoleGroup NavigationGroup = "role"

	//HelpGroup groups all actions under the help resource
	HelpGroup NavigationGroup = "help"

	//KYCGroup groups all actions under the kyc resource
	KYCGroup NavigationGroup = "kyc"

	//PatientGroup groups all actions under the patient resource
	PatientGroup NavigationGroup = "patient"

	//PartnerGroup groups all actions under the partner resource
	PartnerGroup NavigationGroup = "partner"

	//RolesGroup groups all actions under the role resource
	RolesGroup NavigationGroup = "role"

	//ConsumerGroup groups all actions under the consumer resource
	ConsumerGroup NavigationGroup = "consumer"
)

type PIN

type PIN struct {
	ID        string `json:"id"        firestore:"id"`
	ProfileID string `json:"profileID" firestore:"profileID"`
	PINNumber string `json:"pinNumber" firestore:"pinNumber"`
	Salt      string `json:"salt"      firestore:"salt"`

	// Flags the PIN as temporary and should be changed by user
	IsOTP bool `json:"isOTP" firestore:"isOTP"`
}

PIN represents a user's PIN information

type PostVisitSurvey

type PostVisitSurvey struct {
	LikelyToRecommend int       `json:"likelyToRecommend" firestore:"likelyToRecommend"`
	Criticism         string    `json:"criticism"         firestore:"criticism"`
	Suggestions       string    `json:"suggestions"       firestore:"suggestions"`
	UID               string    `json:"uid"               firestore:"uid"`
	Timestamp         time.Time `json:"timestamp"         firestore:"timestamp"`
}

PostVisitSurvey is used to record and retrieve post visit surveys from Firebase

type RoleRevocationLog added in v0.0.2

type RoleRevocationLog struct {
	// Unique identifier for a revocation
	ID string `json:"id" firestore:"id"`

	// profile of user whose role is being revoked
	ProfileID string `json:"profileID" firestore:"profileID"`

	// ID of role being revoked
	RoleID string `json:"roleID" firestore:"roleID"`

	// Reason role is being revoked
	Reason string `json:"reason" firestore:"reason"`

	// CreatedBy is the Profile ID of the user removing the role.
	CreatedBy string `json:"createdBy,omitempty" firestore:"createdBy"`

	// Created is the timestamp indicating when the role was created
	Created time.Time `json:"created" firestore:"created"`
}

RoleRevocationLog represents a log for revoking a users role used when removing a role from a user i.e user deactivation

type SetPINRequest

type SetPINRequest struct {
	PhoneNumber string `json:"phoneNumber"`
	PIN         string `json:"pin"`
}

SetPINRequest payload to set PIN information

type ThinAddress

type ThinAddress struct {
	Latitude  float64 `json:"latitude"`
	Longitude float64 `json:"longitude"`
}

ThinAddress represents an addresses lat-long

type UserAddresses

type UserAddresses struct {
	HomeAddress ThinAddress `json:"homeAddress"`
	WorkAddress ThinAddress `json:"workAddress"`
}

UserAddresses represents a user's home and work addresses

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL