mongo

package
v0.2.15 Latest Latest
Warning

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

Go to latest
Published: Aug 8, 2022 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Client

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

Client is a client that connects to Mongo DB and reads or saves Yorkie data.

func Dial

func Dial(conf *Config) (*Client, error)

Dial creates an instance of Client and dials the given MongoDB.

func (*Client) ActivateClient

func (c *Client) ActivateClient(ctx context.Context, projectID types.ID, key string) (*database.ClientInfo, error)

ActivateClient activates the client of the given key.

func (*Client) Close

func (c *Client) Close() error

Close all resources of this client.

func (*Client) CreateChangeInfos

func (c *Client) CreateChangeInfos(
	ctx context.Context,
	projectID types.ID,
	docInfo *database.DocInfo,
	initialServerSeq int64,
	changes []*change.Change,
) error

CreateChangeInfos stores the given changes and doc info.

func (*Client) CreateProjectInfo

func (c *Client) CreateProjectInfo(ctx context.Context, name string) (*database.ProjectInfo, error)

CreateProjectInfo creates a new project.

func (*Client) CreateSnapshotInfo

func (c *Client) CreateSnapshotInfo(
	ctx context.Context,
	docID types.ID,
	doc *document.InternalDocument,
) error

CreateSnapshotInfo stores the snapshot of the given document.

func (*Client) CreateUserInfo added in v0.2.14

func (c *Client) CreateUserInfo(
	ctx context.Context,
	username string,
	hashedPassword string,
) (*database.UserInfo, error)

CreateUserInfo creates a new user.

func (*Client) DeactivateClient

func (c *Client) DeactivateClient(ctx context.Context, projectID, clientID types.ID) (*database.ClientInfo, error)

DeactivateClient deactivates the client of the given ID.

func (*Client) EnsureDefaultUserAndProject added in v0.2.14

func (c *Client) EnsureDefaultUserAndProject(
	ctx context.Context,
	username,
	password string,
) (*database.UserInfo, *database.ProjectInfo, error)

EnsureDefaultUserAndProject creates the default user and project if they do not exist.

func (*Client) FindChangeInfosBetweenServerSeqs

func (c *Client) FindChangeInfosBetweenServerSeqs(
	ctx context.Context,
	docID types.ID,
	from int64,
	to int64,
) ([]*database.ChangeInfo, error)

FindChangeInfosBetweenServerSeqs returns the changeInfos between two server sequences.

func (*Client) FindChangesBetweenServerSeqs

func (c *Client) FindChangesBetweenServerSeqs(
	ctx context.Context,
	docID types.ID,
	from int64,
	to int64,
) ([]*change.Change, error)

FindChangesBetweenServerSeqs returns the changes between two server sequences.

func (*Client) FindClientInfoByID

func (c *Client) FindClientInfoByID(ctx context.Context, projectID, clientID types.ID) (*database.ClientInfo, error)

FindClientInfoByID finds the client of the given ID.

func (*Client) FindClosestSnapshotInfo

func (c *Client) FindClosestSnapshotInfo(
	ctx context.Context,
	docID types.ID,
	serverSeq int64,
) (*database.SnapshotInfo, error)

FindClosestSnapshotInfo finds the last snapshot of the given document.

func (*Client) FindDeactivateCandidates

func (c *Client) FindDeactivateCandidates(
	ctx context.Context,
	deactivateThreshold gotime.Duration,
	candidatesLimit int,
) ([]*database.ClientInfo, error)

FindDeactivateCandidates finds the clients that need housekeeping.

func (*Client) FindDocInfoByID

func (c *Client) FindDocInfoByID(ctx context.Context, id types.ID) (*database.DocInfo, error)

FindDocInfoByID finds a docInfo of the given ID.

func (*Client) FindDocInfoByKey

func (c *Client) FindDocInfoByKey(
	ctx context.Context,
	projectID types.ID,
	docKey key.Key,
) (*database.DocInfo, error)

FindDocInfoByKey finds the document of the given key.

func (*Client) FindDocInfoByKeyAndOwner added in v0.2.9

func (c *Client) FindDocInfoByKeyAndOwner(
	ctx context.Context,
	projectID types.ID,
	clientID types.ID,
	docKey key.Key,
	createDocIfNotExist bool,
) (*database.DocInfo, error)

FindDocInfoByKeyAndOwner finds the document of the given key. If the createDocIfNotExist condition is true, create the document if it does not exist.

func (*Client) FindDocInfosByPaging

func (c *Client) FindDocInfosByPaging(
	ctx context.Context,
	projectID types.ID,
	paging types.Paging[types.ID],
) ([]*database.DocInfo, error)

FindDocInfosByPaging returns the docInfos of the given paging.

func (*Client) FindDocInfosByQuery added in v0.2.13

func (c *Client) FindDocInfosByQuery(
	ctx context.Context,
	projectID types.ID,
	query string,
	pageSize int,
) (*types.SearchResult[*database.DocInfo], error)

FindDocInfosByQuery returns the docInfos which match the given query.

func (*Client) FindProjectInfoByID added in v0.2.8

func (c *Client) FindProjectInfoByID(ctx context.Context, id types.ID) (*database.ProjectInfo, error)

FindProjectInfoByID returns a project by the given id.

func (*Client) FindProjectInfoByName added in v0.2.6

func (c *Client) FindProjectInfoByName(ctx context.Context, name string) (*database.ProjectInfo, error)

FindProjectInfoByName returns a project by name.

func (*Client) FindProjectInfoByPublicKey

func (c *Client) FindProjectInfoByPublicKey(ctx context.Context, publicKey string) (*database.ProjectInfo, error)

FindProjectInfoByPublicKey returns a project by public key.

func (*Client) FindUserInfo added in v0.2.14

func (c *Client) FindUserInfo(ctx context.Context, username string) (*database.UserInfo, error)

FindUserInfo returns a user by username.

func (*Client) ListProjectInfos

func (c *Client) ListProjectInfos(ctx context.Context) ([]*database.ProjectInfo, error)

ListProjectInfos returns all project infos.

func (*Client) ListUserInfos added in v0.2.14

func (c *Client) ListUserInfos(
	ctx context.Context,
) ([]*database.UserInfo, error)

ListUserInfos returns all users.

func (*Client) UpdateAndFindMinSyncedTicket

func (c *Client) UpdateAndFindMinSyncedTicket(
	ctx context.Context,
	clientInfo *database.ClientInfo,
	docID types.ID,
	serverSeq int64,
) (*time.Ticket, error)

UpdateAndFindMinSyncedTicket updates the given serverSeq of the given client and returns the min synced ticket.

func (*Client) UpdateClientInfoAfterPushPull

func (c *Client) UpdateClientInfoAfterPushPull(
	ctx context.Context,
	clientInfo *database.ClientInfo,
	docInfo *database.DocInfo,
) error

UpdateClientInfoAfterPushPull updates the client from the given clientInfo after handling PushPull.

func (*Client) UpdateProjectInfo

func (c *Client) UpdateProjectInfo(
	ctx context.Context,
	id types.ID,
	fields *types.UpdatableProjectFields,
) (*database.ProjectInfo, error)

UpdateProjectInfo updates the project info.

func (*Client) UpdateSyncedSeq

func (c *Client) UpdateSyncedSeq(
	ctx context.Context,
	clientInfo *database.ClientInfo,
	docID types.ID,
	serverSeq int64,
) error

UpdateSyncedSeq updates the syncedSeq of the given client.

type Config

type Config struct {
	ConnectionTimeout string `yaml:"ConnectionTimeout"`
	ConnectionURI     string `yaml:"ConnectionURI"`
	YorkieDatabase    string `yaml:"YorkieDatabase"`
	PingTimeout       string `yaml:"PingTimeout"`
}

Config is the configuration for creating a Client instance.

func (*Config) ParseConnectionTimeout

func (c *Config) ParseConnectionTimeout() time.Duration

ParseConnectionTimeout returns connection timeout duration.

func (*Config) ParsePingTimeout

func (c *Config) ParsePingTimeout() time.Duration

ParsePingTimeout returns ping timeout duration.

func (*Config) Validate

func (c *Config) Validate() error

Validate returns an error if the provided Config is invalidated.

Jump to

Keyboard shortcuts

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