firebase

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Mar 22, 2022 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// EmailOptInCollectionName ...
	EmailOptInCollectionName = "email_opt_ins"
	// BreakGlassCollectionName ...
	BreakGlassCollectionName = "break_glass"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type CreateCommand

type CreateCommand struct {
	CollectionName string
	Data           interface{}
}

CreateCommand represent payload required to perform a create operation in the database

type DeleteCommand

type DeleteCommand struct {
	CollectionName string
	ID             string
}

DeleteCommand represent payload required to perform a delete operation in the database

type FBClientExtension

type FBClientExtension interface {
	GetUserByPhoneNumber(ctx context.Context, phone string) (*auth.UserRecord, error)
	CreateUser(ctx context.Context, user *auth.UserToCreate) (*auth.UserRecord, error)
	DeleteUser(ctx context.Context, uid string) error
}

FBClientExtension represents the methods we need from firebase `auth.Client`

func NewFBClientExtensionImpl

func NewFBClientExtensionImpl() FBClientExtension

NewFBClientExtensionImpl initializes a new FirebaseClient extension

type FBClientExtensionImpl

type FBClientExtensionImpl struct{}

FBClientExtensionImpl ...

func (*FBClientExtensionImpl) CreateUser

CreateUser ...

func (*FBClientExtensionImpl) DeleteUser

func (f *FBClientExtensionImpl) DeleteUser(ctx context.Context, uid string) error

DeleteUser ...

func (*FBClientExtensionImpl) GetUserByPhoneNumber

func (f *FBClientExtensionImpl) GetUserByPhoneNumber(ctx context.Context, phone string) (*auth.UserRecord, error)

GetUserByPhoneNumber ...

type FirestoreClientExtension

type FirestoreClientExtension interface {
	GetAll(ctx context.Context, query *GetAllQuery) ([]*firestore.DocumentSnapshot, error)
	Create(ctx context.Context, command *CreateCommand) (*firestore.DocumentRef, error)
	Update(ctx context.Context, command *UpdateCommand) error
	Delete(ctx context.Context, command *DeleteCommand) error
	Get(ctx context.Context, query *GetSingleQuery) (*firestore.DocumentSnapshot, error)
}

FirestoreClientExtension represents the methods we need from firebase `firestore.Client`

type FirestoreClientExtensionImpl

type FirestoreClientExtensionImpl struct {
	// contains filtered or unexported fields
}

FirestoreClientExtensionImpl ...

func NewFirestoreClientExtension

func NewFirestoreClientExtension(fc *firestore.Client) *FirestoreClientExtensionImpl

NewFirestoreClientExtension initializes a new FirestoreClient extension

func (*FirestoreClientExtensionImpl) Create

Create persists data to a firestore collection

func (*FirestoreClientExtensionImpl) Delete

Delete deletes data to a firestore collection

func (*FirestoreClientExtensionImpl) Get

Get retrieves data to a firestore collection

func (*FirestoreClientExtensionImpl) GetAll

GetAll retrieve a value from the store

func (*FirestoreClientExtensionImpl) Update

Update updates data to a firestore collection

type GetAllQuery

type GetAllQuery struct {
	CollectionName string
	FieldName      string
	Value          interface{}
	Operator       string
}

GetAllQuery represent payload required to perform a request in the database

type GetSingleQuery

type GetSingleQuery struct {
	CollectionName string
	Value          string
}

GetSingleQuery represent payload required to get a single item from the database

type Repository

type Repository struct {
	FirestoreClient FirestoreClientExtension
	FirebaseClient  FBClientExtension
}

Repository accesses and updates an item that is stored on Firebase

func NewFirebaseRepository

func NewFirebaseRepository(
	firestoreClient FirestoreClientExtension,
	firebaseClient FBClientExtension,
) *Repository

NewFirebaseRepository initializes a Firebase repository

func (Repository) GetEmailOptInCollectionName

func (fr Repository) GetEmailOptInCollectionName() string

GetEmailOptInCollectionName ...

func (Repository) SaveEmailOTP

func (fr Repository) SaveEmailOTP(
	ctx context.Context,
	email string, optIn bool) error

SaveEmailOTP persist the data of the newly created OTP to a datastore

func (Repository) StageStartEpisodeByBreakGlass

func (fr Repository) StageStartEpisodeByBreakGlass(
	ctx context.Context, input domain.BreakGlassEpisodeCreationInput) error

StageStartEpisodeByBreakGlass persists starts an emergency episode data

type UpdateCommand

type UpdateCommand struct {
	CollectionName string
	Data           interface{}
	ID             string
}

UpdateCommand represent payload required to perform an update operaion in the database

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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