service

package
v0.127.0 Latest Latest
Warning

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

Go to latest
Published: May 5, 2026 License: AGPL-3.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddSubscriptions

func AddSubscriptions(ctx context.Context, subscriptions ...*models.Subscription) error

AddSubscriptions adds the given subscriptions to a user.

func BuildItemQueries

func BuildItemQueries(
	user *models.User,
	view models.View,
	subscriptions models.Subscriptions,
) []query.Option

BuildItemQueries generates a slices of queries for the given subscriptions, based on the given filters.

func BulkImportFeeds

func BulkImportFeeds(ctx context.Context, requests ...models.FeedSubscriptionRequest) []models.FeedSubscriptionResult

BulkImportFeeds handles processing any number of NewFeedSubscriptionRequest requests.

func CreateSearchSubscriptions

func CreateSearchSubscriptions(ctx context.Context, requests ...*models.SearchSubscriptionRequest) error

CreateSearchSubscriptions will create new SearchSubscriptions for the user from the given requests.

func FilterUserSubscriptions

func FilterUserSubscriptions(
	ctx context.Context,
	user *models.User,
	request *models.ListRequest,
) (models.Subscriptions, models.Pagination, error)

FilterUserSubscriptions returns subscriptions filtered by the given filters and paginated by the given pagination. Dynamic information for subscriptions will also be added.

func GetEmailSubscription

func GetEmailSubscription(ctx context.Context, user *models.User, from *mail.Address) (*models.Subscription, error)

GetEmailSubscription retrieves an EmailSubscription for the given user ID and email sender.

func GetUser

func GetUser(ctx context.Context, id models.UserID) (*models.User, error)

GetUser retrieves the user doc with the given id.

func GetUserByEmail

func GetUserByEmail(ctx context.Context, email string) (*models.User, error)

GetUserByEmail will retrieve a user by their email.

func GetUserByExternalID

func GetUserByExternalID(ctx context.Context, externalID string) (*models.User, error)

GetUserByExternalID will search for and return a user that matches the given external ID, if exists.

func GetUserBySubscriptionEmail

func GetUserBySubscriptionEmail(ctx context.Context, emails ...string) (*models.User, error)

GetUserBySubscriptionEmail will retrieve a user from their Foragd newsletter subscription email.

func GetUserSubscriptions

func GetUserSubscriptions(
	ctx context.Context,
	user *models.User,
	options ...GetSubscriptionOption,
) (models.Subscriptions, error)

func ListFiltersFromCtx

func ListFiltersFromCtx(ctx context.Context) models.ListFilters

ListFiltersFromCtx retrieves list filters from the context. If none are found, new list filters are returned.

func ListFiltersToCtx

func ListFiltersToCtx(ctx context.Context, filters models.ListFilters) context.Context

ListFiltersToCtx stores list filters in the context.

func RemoveSubscriptions

func RemoveSubscriptions(ctx context.Context, ids ...models.SubscriptionID) error

RemoveSubscriptions removes subscriptions with the given ID from a user.

func UpdateUser

func UpdateUser(ctx context.Context, user *models.User, updates map[string]any) error

UpdateUser will apply the given updates to the user.

Types

type GetSubscriptionOption

type GetSubscriptionOption func(*GetSubscriptionOptions)

func Favorites

func Favorites(value bool) GetSubscriptionOption

func WithDynamicInfo

func WithDynamicInfo(value bool) GetSubscriptionOption

func WithEmailSubscriptionEmails

func WithEmailSubscriptionEmails(emails ...string) GetSubscriptionOption

func WithSubscriptionCategories

func WithSubscriptionCategories(categories ...models.Category) GetSubscriptionOption

func WithSubscriptionIDs

func WithSubscriptionIDs(ids ...models.SubscriptionID) GetSubscriptionOption

type GetSubscriptionOptions

type GetSubscriptionOptions struct {
	OnlyFavorites bool
	DynamicInfo   bool
	IDs           []models.SubscriptionID
	Categories    []models.Category
	EmailIDs      []string
}

GetSubscriptionOptions holds the options for fetching a user's subscriptions.

Jump to

Keyboard shortcuts

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