mongomanager

package
v0.0.0-...-c8bebc6 Latest Latest
Warning

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

Go to latest
Published: Apr 19, 2025 License: BSD-4-Clause Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckMongoConnectionFiles

func CheckMongoConnectionFiles(log *zap.Logger) error

func ContainsRole

func ContainsRole(seat Seat, requiredRoles []Role) bool

func ValidateStruct

func ValidateStruct(s interface{}) error

Types

type MongoConnection

type MongoConnection struct {
	Client *mongo.Client
	Log    *zap.Logger
}

func InitMongoConnection

func InitMongoConnection(ctx context.Context, log *zap.Logger) (*MongoConnection, error)

func (*MongoConnection) CheckDatabaseAndCollectionExists

func (mongoConnection *MongoConnection) CheckDatabaseAndCollectionExists(ctx context.Context) error

func (*MongoConnection) CheckMongoConnectability

func (mongoConnection *MongoConnection) CheckMongoConnectability(ctx context.Context) error

func (*MongoConnection) CountNewsletterSubscriber

func (mongoConnection *MongoConnection) CountNewsletterSubscriber(ctx context.Context, email string) (int64, error)

func (*MongoConnection) CountSeats

func (mongoConnection *MongoConnection) CountSeats(ctx context.Context, subscriptionID string) (int64, error)

func (*MongoConnection) CreateNewsletterSubscriber

func (mongoConnection *MongoConnection) CreateNewsletterSubscriber(ctx context.Context, newsletterSubscriber NewsletterSubscriber) error

func (*MongoConnection) CreateSeat

func (mongoConnection *MongoConnection) CreateSeat(ctx context.Context, seat Seat) error

func (*MongoConnection) CreateTrial

func (mongoConnection *MongoConnection) CreateTrial(ctx context.Context, trial Trial) error

func (*MongoConnection) CreateUser

func (mongoConnection *MongoConnection) CreateUser(ctx context.Context, user User) error

func (*MongoConnection) DeleteNewsletterSubscriber

func (mongoConnection *MongoConnection) DeleteNewsletterSubscriber(ctx context.Context, newsletterSubscriber NewsletterSubscriber) error

func (*MongoConnection) DeleteSeat

func (mongoConnection *MongoConnection) DeleteSeat(ctx context.Context, seat Seat) error

func (*MongoConnection) DeleteUser

func (mongoConnection *MongoConnection) DeleteUser(ctx context.Context, customerID string) error

func (*MongoConnection) EnsureIndexes

func (mongoConnection *MongoConnection) EnsureIndexes() error

func (*MongoConnection) GetAllNewsletterSubscribers

func (mongoConnection *MongoConnection) GetAllNewsletterSubscribers(ctx context.Context) ([]NewsletterSubscriber, error)

func (*MongoConnection) GetAllSeats

func (mongoConnection *MongoConnection) GetAllSeats(ctx context.Context, subscriptionID string) ([]Seat, error)

func (*MongoConnection) GetNewsletterSubscriber

func (mongoConnection *MongoConnection) GetNewsletterSubscriber(ctx context.Context, email string) (NewsletterSubscriber, error)

func (*MongoConnection) GetNewsletterSubscriberByUnsubscribeToken

func (mongoConnection *MongoConnection) GetNewsletterSubscriberByUnsubscribeToken(ctx context.Context, unsubscribeToken string) (NewsletterSubscriber, error)

func (*MongoConnection) GetNewsletterSubscriberByVerificationToken

func (mongoConnection *MongoConnection) GetNewsletterSubscriberByVerificationToken(ctx context.Context, verificationToken string) (NewsletterSubscriber, error)

func (*MongoConnection) GetNewsletterSubscribers

func (mongoConnection *MongoConnection) GetNewsletterSubscribers(ctx context.Context, pageIndex int, pageSize int) ([]NewsletterSubscriber, error)

func (*MongoConnection) GetOwnerSeat

func (mongoConnection *MongoConnection) GetOwnerSeat(ctx context.Context, subscriptionID string) (Seat, error)

func (*MongoConnection) GetSeat

func (mongoConnection *MongoConnection) GetSeat(ctx context.Context, subscriptionID, uid string) (Seat, error)

func (*MongoConnection) GetSeats

func (mongoConnection *MongoConnection) GetSeats(ctx context.Context, subscriptionID string, pageIndex int, pageSize int) ([]Seat, error)

func (*MongoConnection) GetTrial

func (mongoConnection *MongoConnection) GetTrial(ctx context.Context, trialFilter TrialFilter) (Trial, error)

func (*MongoConnection) GetUser

func (mongoConnection *MongoConnection) GetUser(ctx context.Context, userFilter User) (User, error)

func (*MongoConnection) HasPermission

func (mongoConnection *MongoConnection) HasPermission(ctx context.Context, tokenDetails firebasemanager.TokenDetails, subscriptionID string, requiredRoles []Role) error

func (*MongoConnection) UpdateNewsletterSubscriber

func (mongoConnection *MongoConnection) UpdateNewsletterSubscriber(ctx context.Context, newsletterSubscriber NewsletterSubscriber) error

func (*MongoConnection) UpdateSeat

func (mongoConnection *MongoConnection) UpdateSeat(ctx context.Context, seat Seat) error

func (*MongoConnection) UpdateUser

func (mongoConnection *MongoConnection) UpdateUser(ctx context.Context, user User) error

type NewsletterStatus

type NewsletterStatus string
const (
	NewsletterStatusActive  NewsletterStatus = "active"
	NewsletterStatusPending NewsletterStatus = "pending"
	NewsletterStatusBounced NewsletterStatus = "bounced"
)

type NewsletterSubscriber

type NewsletterSubscriber struct {
	EMail                   string           `bson:"email" json:"email" validate:"required,email"`
	Status                  NewsletterStatus `bson:"status" json:"status" validate:"required"`
	SubscribedAt            time.Time        `bson:"subscribedAt" json:"subscribedAt"`
	ConfirmedAt             time.Time        `bson:"confirmedAt,omitempty" json:"confirmedAt,omitempty"`
	VerificationToken       string           `bson:"verificationToken,omitempty" json:"verificationToken,omitempty"`
	VerificationTokenSentAt time.Time        `bson:"verificationTokenSentAt,omitempty" json:"verificationTokenSentAt,omitempty"`
	UnsubscribeToken        string           `bson:"unsubscribeToken,omitempty" json:"unsubscribeToken,omitempty"`
	LastUpdated             time.Time        `bson:"lastUpdated" json:"lastUpdated" validate:"required"`
}

type Role

type Role string
const (
	RoleOwner         Role = "Owner"
	RoleAdministrator Role = "Administrator"
	RoleUser          Role = "User"
	RoleBilling       Role = "Billing"
)

type Seat

type Seat struct {
	SubscriptionID string `bson:"subscriptionID" json:"subscriptionID" validate:"required"`
	UID            string `bson:"uid" json:"uid" validate:"required"`
	EMail          string `bson:"email" json:"email" validate:"required"`
	EMailVerified  *bool  `bson:"emailVerified" json:"emailVerified" validate:"required"`
	Roles          []Role `bson:"roles" json:"roles" validate:"required"`
}

type Trial

type Trial struct {
	SubscriptionID         string `bson:"subscriptionID" validate:"required" index:"unique"`
	ProductType            string `bson:"productType" validate:"required"`
	CustomerID             string `bson:"customerID,omitempty" index:"unique" validate:"required"`
	PaymentCardFingerprint string `bson:"paymentCardFingerprint,omitempty" index:"unique"`
	PaymentPayPalEMail     string `bson:"paymentPayPalEMail,omitempty" index:"unique"`
	PaymentSEPAFingerprint string `bson:"paymentSEPAFingerprint,omitempty" index:"unique"`
}

type TrialFilter

type TrialFilter struct {
	ProductType            string `bson:"productType" validate:"required"`
	CustomerID             string `bson:"customerID,omitempty" index:"unique" validate:"required"`
	PaymentCardFingerprint string `bson:"paymentCardFingerprint,omitempty" index:"unique"`
	PaymentPayPalEMail     string `bson:"paymentPayPalEMail,omitempty" index:"unique"`
	PaymentSEPAFingerprint string `bson:"paymentSEPAFingerprint,omitempty" index:"unique"`
}

type User

type User struct {
	UID        string `bson:"uid" validate:"required"`
	CustomerID string `bson:"customerID" validate:"required"`
}

Jump to

Keyboard shortcuts

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