devices

package
v1.35.1 Latest Latest
Warning

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

Go to latest
Published: Dec 12, 2025 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrNotFound      = errors.New("record not found")
	ErrInvalidFilter = errors.New("invalid filter")
	ErrMoreThanOne   = errors.New("more than one record")
)
View Source
var (
	ErrInvalidUser = errors.New("invalid user")
)

Functions

func Module

func Module() fx.Option

Types

type Config

type Config struct {
}

type Repository added in v1.34.0

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

func NewRepository added in v1.34.0

func NewRepository(db *gorm.DB) *Repository

func (*Repository) Cleanup added in v1.34.0

func (r *Repository) Cleanup(ctx context.Context, until time.Time) (int64, error)

func (*Repository) Exists added in v1.34.0

func (r *Repository) Exists(filters ...SelectFilter) (bool, error)

Exists checks if there exists a device with the given filters.

If the device does not exist, it returns false and nil error. If there is an error during the query, it returns false and the error. Otherwise, it returns true and nil error.

func (*Repository) Get added in v1.34.0

func (r *Repository) Get(filter ...SelectFilter) (models.Device, error)

func (*Repository) Insert added in v1.34.0

func (r *Repository) Insert(device *models.Device) error

func (*Repository) Remove added in v1.34.0

func (r *Repository) Remove(filter ...SelectFilter) error

func (*Repository) Select added in v1.34.0

func (r *Repository) Select(filter ...SelectFilter) ([]models.Device, error)

func (*Repository) SetLastSeen added in v1.34.0

func (r *Repository) SetLastSeen(ctx context.Context, id string, lastSeen time.Time) error

func (*Repository) UpdatePushToken added in v1.34.0

func (r *Repository) UpdatePushToken(id, token string) error

type SelectFilter

type SelectFilter func(*selectFilter)

func ActiveWithin added in v1.25.0

func ActiveWithin(duration time.Duration) SelectFilter

func WithID

func WithID(id string) SelectFilter

func WithToken

func WithToken(token string) SelectFilter

func WithUserID

func WithUserID(userID string) SelectFilter

type Service

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

func NewService

func NewService(
	config Config,
	devices *Repository,
	idGen db.IDGen,
	logger *zap.Logger,
) *Service

func (*Service) Exists added in v1.22.0

func (s *Service) Exists(userID string, filter ...SelectFilter) (bool, error)

Exists checks if there exists a device that matches the provided filters.

If the device does not exist, it returns false and nil error. If there is an error during the query, it returns false and the error. Otherwise, it returns true and nil error.

func (*Service) Get

func (s *Service) Get(userID string, filter ...SelectFilter) (models.Device, error)

Get returns a single device based on the provided filters for a specific user. It ensures that the filter includes the user's ID. If no device matches the criteria, it returns ErrNotFound. If more than one device matches, it returns ErrMoreThanOne.

func (*Service) GetAny added in v1.34.3

func (s *Service) GetAny(userID string, deviceID string, duration time.Duration) (*models.Device, error)

func (*Service) GetByToken added in v1.18.0

func (s *Service) GetByToken(token string) (models.Device, error)

GetByToken returns a device by token.

This method is used to retrieve a device by its auth token. If the device does not exist, it returns ErrNotFound.

func (*Service) Insert

func (s *Service) Insert(userID string, device *models.Device) error

func (*Service) Remove added in v1.18.0

func (s *Service) Remove(userID string, filter ...SelectFilter) error

Remove removes devices for a specific user that match the provided filters. It ensures that the filter includes the user's ID.

func (*Service) Select

func (s *Service) Select(userID string, filter ...SelectFilter) ([]models.Device, error)

Select returns a list of devices for a specific user that match the provided filters.

func (*Service) SetLastSeen added in v1.30.0

func (s *Service) SetLastSeen(ctx context.Context, batch map[string]time.Time) error

func (*Service) UpdatePushToken added in v1.18.0

func (s *Service) UpdatePushToken(id string, token string) error

Jump to

Keyboard shortcuts

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