rainbox

package
v0.0.0-...-63b745f Latest Latest
Warning

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

Go to latest
Published: Jul 4, 2019 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	InvalidUserID = UserID("")
)

Variables

This section is empty.

Functions

func SetupDIContainer

func SetupDIContainer(c *dig.Container) error

Types

type FirebaseAuthVerifier

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

func (*FirebaseAuthVerifier) Verify

func (fav *FirebaseAuthVerifier) Verify(ctx context.Context, idToken string) (UserID, error)

type FirestorePostRepository

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

func (*FirestorePostRepository) CountAll

func (repo *FirestorePostRepository) CountAll(ctx context.Context) (int, error)

func (*FirestorePostRepository) Create

func (repo *FirestorePostRepository) Create(ctx context.Context, post *Post) error

type FirestoreUserRepository

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

func (*FirestoreUserRepository) Create

func (repo *FirestoreUserRepository) Create(ctx context.Context, u *User) error

func (*FirestoreUserRepository) Get

func (repo *FirestoreUserRepository) Get(ctx context.Context, id UserID) (*User, error)

type Post

type Post struct {
	ID           PostID    `firestore:"-"`
	AuthorUserID UserID    `firestore:"authorUserId"`
	ThumbnailURL string    `firestore:"thumbnailUrl"`
	ImageURLs    []string  `firestore:"imageUrls"`
	Tags         []string  `firestore:"tags"`
	Likes        int       `firestore:"likes"`
	CreatedAt    time.Time `firestore:"createdAt"`
	UpdatedAt    time.Time `firestore:"updatedAt"`
}

func NewPost

func NewPost(author *User, imageURLs, tags []string) *Post

type PostID

type PostID string

type PostRepository

type PostRepository interface {
	Create(context.Context, *Post) error
	CountAll(context.Context) (int, error)
}

func NewFirestorePostRepository

func NewFirestorePostRepository(store *firestore.Client) PostRepository

type PostService

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

func NewPostService

func NewPostService(repo PostRepository) *PostService

func (*PostService) CountAll

func (sv *PostService) CountAll(ctx context.Context) (int, error)

func (*PostService) Create

func (sv *PostService) Create(ctx context.Context, post *Post) error

type Services

type Services struct {
	dig.In

	User *UserService
	Post *PostService
}

type User

type User struct {
	ID          UserID    `json:"id" firestore:"-"`
	DisplayName string    `json:"displayName" firestore:"displayName"`
	Grade       UserGrade `json:"grade" firestore:"grade"`
}

type UserGrade

type UserGrade int
const (
	UserGradeOutsider UserGrade = iota + 1
	UserGradeNewbie
	UserGradeModerator
	UserGradeAdmin
)

type UserID

type UserID string

type UserRepository

type UserRepository interface {
	Get(ctx context.Context, id UserID) (*User, error)
	Create(ctx context.Context, u *User) error
}

func NewFirestoreUserRepository

func NewFirestoreUserRepository(store *firestore.Client) UserRepository

type UserService

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

func NewUserService

func NewUserService(repo UserRepository) *UserService

func (*UserService) Get

func (sv *UserService) Get(ctx context.Context, userID UserID) (*User, error)

func (*UserService) Register

func (sv *UserService) Register(ctx context.Context, userID UserID, displayName string) error

type Verifier

type Verifier interface {
	Verify(ctx context.Context, idToken string) (UserID, error)
}

func NewFirebaseAuthVerifier

func NewFirebaseAuthVerifier(client *auth.Client) Verifier

Jump to

Keyboard shortcuts

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