postgres

package
v0.0.0-...-cbce884 Latest Latest
Warning

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

Go to latest
Published: Oct 7, 2020 License: GPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Database

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

Database is a wrapper for the PostgreSQL connection

func New

func New(user, password, host, database string) (*Database, error)

New creates and returns a pointer to a new instance of `Database`

func (*Database) ActivateUser

func (d *Database) ActivateUser(userID string, active bool) error

ActivateUser updates the user active field

func (*Database) AddDefDocument

func (d *Database) AddDefDocument(projectID, pathName string, fields models.ResourceObject, metadata *models.MetaData) (string, *dsiErrors.DatastoreError)

AddDefDocument creates a new document for the existing resource, specified by the path.

func (*Database) AddDefinition

func (d *Database) AddDefinition(projectID string, definition *models.ResourceDefinition) (string, *dsiErrors.DatastoreError)

AddDefinition creates a new definition

func (*Database) AddHook

func (d *Database) AddHook(projectID string, hook *models.WebHook) *errors.DatastoreError

AddHook saves a new WebHook to the datastore

func (*Database) AddProjectLog

func (d *Database) AddProjectLog(projectID string, log *models.Log) error

AddProjectLog saves a new log for a project

func (*Database) AddResult

func (d *Database) AddResult(result *models.HookResult) *errors.DatastoreError

AddResult creates a new webhook result

func (*Database) CheckIfRelationsExistBeforeInsert

func (d *Database) CheckIfRelationsExistBeforeInsert(projectID string, fields models.ResourceObject, resourceDefinition *models.ResourceDefinition) *dsiErrors.DatastoreError

func (*Database) CountDefDocuments

func (d *Database) CountDefDocuments(projectID, pathName string, filter map[string]interface{}) (int64, *dsiErrors.DatastoreError)

CountDefDocuments returns the count of all documents for a project resource

func (*Database) CountProjectLogs

func (d *Database) CountProjectLogs(projectID string, filter *models.Filters) (int64, error)

CountProjectLogs returns the count of logs for a project

func (*Database) CreateAPIKey

func (d *Database) CreateAPIKey(projectID, hash, description string, read, write bool, role string) (*models.ProjectAPIKey, error)

CreateAPIKey creates a new api key for the project

func (*Database) CreateAppSession

func (d *Database) CreateAppSession(session *models.Session) error

CreateAppSession create new session for an application user

func (*Database) CreateAppUser

func (d *Database) CreateAppUser(user *models.User) error

CreateAppUser saves a new application user, updates user ID

func (*Database) CreateJSONKey

func (d *Database) CreateJSONKey(projectID, rootKey string, data []byte, keys ...string) error

CreateJSONKey saves the data at the provided key path. Fails if the key already exists.

func (*Database) CreateProject

func (d *Database) CreateProject(userID, slug, name, description, icon string, authn bool, register bool) (*models.Project, error)

CreateProject creates a new project for a user

func (*Database) CreateRootKey

func (d *Database) CreateRootKey(projectID, rootKey string, data []byte) error

CreateRootKey creates a new rootkey with a JSON tree

func (*Database) CreateSession

func (d *Database) CreateSession(projectID string, session *models.Session) error

CreateSession creates a new session for a project user

func (*Database) CreateUser

func (d *Database) CreateUser(projectID string, user *models.ProjectUser) error

CreateUser creates a new project user for the project

func (*Database) DeleteAPIKey

func (d *Database) DeleteAPIKey(projectID, keyID string) error

DeleteAPIKey removes a project api key permanently

func (*Database) DeleteAppSession

func (d *Database) DeleteAppSession(sessionID string) error

DeleteAppSession permanently remove the session by ID

func (*Database) DeleteDefDocument

func (d *Database) DeleteDefDocument(projectID, path, documentID string, filter map[string]interface{}) *dsiErrors.DatastoreError

DeleteDefDocument deletes a single document

func (*Database) DeleteDefinition

func (d *Database) DeleteDefinition(projectID, definitionID string) *dsiErrors.DatastoreError

DeleteDefinition deletes a definition as well as any data stored for that definition

func (*Database) DeleteHook

func (d *Database) DeleteHook(projectID, hookID string) *errors.DatastoreError

DeleteHook permanently removes a WebHook by project and hook ID

func (*Database) DeleteJSONKey

func (d *Database) DeleteJSONKey(projectID, rootKey string, keys ...string) error

DeleteJSONKey permanently removes the data at the key path.

func (*Database) DeleteProject

func (d *Database) DeleteProject(projectID string) error

DeleteProject permanently removes a project based on project slug

func (*Database) DeleteRootKey

func (d *Database) DeleteRootKey(projectID, rootKey string) error

DeleteRootKey permanently deletes an entire rootkey's tree

func (*Database) DeleteSession

func (d *Database) DeleteSession(projectID, sessionID string) error

DeleteSession removes a project user's session by project and ID

func (*Database) DeleteUser

func (d *Database) DeleteUser(projectID, userID string) error

DeleteUser deletes a project user for a project based on userID

func (*Database) DropDefDocuments

func (d *Database) DropDefDocuments(projectID, path string) *dsiErrors.DatastoreError

DropDefDocuments drops documents for a resource

func (*Database) DropProjectDefDocuments

func (d *Database) DropProjectDefDocuments(projectID string) *dsiErrors.DatastoreError

DropProjectDefDocuments drops the entire collection of documents for a project

func (*Database) DropProjectKeys

func (d *Database) DropProjectKeys(projectID string) error

DropProjectKeys drops the key collection for this project

func (*Database) DropProjectLogs

func (d *Database) DropProjectLogs(projectID string) error

DropProjectLogs drops the collection for this project's logs

func (*Database) DropProjectResources

func (d *Database) DropProjectResources(projectID string) *dsiErrors.DatastoreError

DropProjectResources drops all resource data as well as the definition

func (*Database) DropProjectSessions

func (d *Database) DropProjectSessions(projectID string) error

DropProjectSessions drops the collection of this project's user sessions

func (*Database) DropProjectUsers

func (d *Database) DropProjectUsers(projectID string) error

DropProjectUsers drops the mongo collection of this project's users

func (*Database) GetAPIKeyByKey

func (d *Database) GetAPIKeyByKey(projectID, hash string) (*models.ProjectAPIKey, error)

GetAPIKeyByKey retrieves a single api key by key hash

func (*Database) GetAppSession

func (d *Database) GetAppSession(sessionID string) (*models.Session, error)

GetAppSession retrieve a single application session by ID

func (*Database) GetAppUserByID

func (d *Database) GetAppUserByID(userID string) (*models.User, error)

GetAppUserByID attempts to find a user by ID, if the user does not exist the user will be nil, error will be !nil

func (*Database) GetAppUserByUsername

func (d *Database) GetAppUserByUsername(userName string) (*models.User, error)

GetAppUserByUsername attempts to find a user by username, if the user does not exist the user will be nil, error will be !nil

func (*Database) GetDefDocument

func (d *Database) GetDefDocument(projectID, path, documentID string, filter map[string]interface{}, relations map[string]string) (map[string]interface{}, *dsiErrors.DatastoreError)

GetDefDocument retrieves a single document

func (*Database) GetDefinition

func (d *Database) GetDefinition(projectID, definitionID string) (*models.ResourceDefinition, *dsiErrors.DatastoreError)

GetDefinition returns a single definition by ID.

func (*Database) GetDefinitionByPathName

func (d *Database) GetDefinitionByPathName(projectID, pathName string) (*models.ResourceDefinition, *dsiErrors.DatastoreError)

GetDefinitionByPathName returns a definition based on `PathName` and `ProjectID`

func (*Database) GetHook

func (d *Database) GetHook(projectID, hookID string) (*models.WebHook, *errors.DatastoreError)

GetHook retrieves a single hook by project and hook ID, if it exists

func (*Database) GetJSONKey

func (d *Database) GetJSONKey(projectID, rootKey string, keys ...string) ([]byte, error)

GetJSONKey retrieves the object at the key path

func (*Database) GetProjectBySlug

func (d *Database) GetProjectBySlug(slug string) (*models.Project, error)

GetProjectBySlug retrieves a project by slug

func (*Database) GetProjectBySlugAndUserID

func (d *Database) GetProjectBySlugAndUserID(slug, userID string) (*models.Project, error)

GetProjectBySlugAndUserID retrieves a project by slug for a given user ID

func (*Database) GetProjectDetailBySlug

func (d *Database) GetProjectDetailBySlug(slug string) (*models.ProjectDetail, error)

GetProjectDetailBySlug retrieves the project by slug from the app_project_limits view

func (*Database) GetResourceStats

func (d *Database) GetResourceStats(projectID, pathName string) (*models.Stats, *dsiErrors.DatastoreError)

GetResourceStats returns stats for a resource collection

func (*Database) GetRootKey

func (d *Database) GetRootKey(projectID, rootKey string) (*models.RootKey, error)

GetRootKey retrieves a single root key by the key name

func (*Database) GetSession

func (d *Database) GetSession(projectID, sessionID string) (*models.Session, error)

GetSession retrieves a single project session by ID

func (*Database) GetUserByID

func (d *Database) GetUserByID(projectID, userID string) (*models.ProjectUser, error)

GetUserByID retrieves a project user by user _id

func (*Database) GetUserByUsername

func (d *Database) GetUserByUsername(projectID, userName string) (*models.ProjectUser, error)

GetUserByUsername retrieves a project user by the user's username

func (*Database) ListAPIKeys

func (d *Database) ListAPIKeys(projectID string) ([]*models.ProjectAPIKey, error)

ListAPIKeys retrieves all api keys for a project

func (*Database) ListDefDocuments

func (d *Database) ListDefDocuments(projectID, pathName string, limit, offset int64, filter map[string]interface{}, sort map[string]int, relations map[string]string) ([]map[string]interface{}, *dsiErrors.DatastoreError)

ListDefDocuments retrieves all definition documents for the give project and path

func (*Database) ListDefinitions

func (d *Database) ListDefinitions(projectID string) ([]*models.ResourceDefinition, *dsiErrors.DatastoreError)

ListDefinitions lists all definitions for a project

func (*Database) ListHooks

func (d *Database) ListHooks(projectID string) ([]*models.WebHook, *errors.DatastoreError)

ListHooks retrieves all WebHooks for a project

func (*Database) ListProjectLogs

func (d *Database) ListProjectLogs(projectID string, limit, offset int64, filter *models.Filters, sort map[string]int) ([]*models.Log, error)

ListProjectLogs retrieves logs based on the limit, offset, filter, and sort parameters

func (*Database) ListResults

func (d *Database) ListResults(projectID, hookID string) ([]*models.HookResult, *errors.DatastoreError)

ListResults lists all webhook results for a web hook

func (*Database) ListRootKeys

func (d *Database) ListRootKeys(projectID string) ([]*models.RootKey, error)

ListRootKeys lists all root keys with associated metadata, does not include jsonb

func (*Database) ListSessions

func (d *Database) ListSessions(projectID string) ([]*models.Session, error)

ListSessions lists all sessions for a project

func (*Database) ListTiers

func (d *Database) ListTiers() ([]*models.Tier, error)

ListTiers retrieves all app tiers

func (*Database) ListUserProjects

func (d *Database) ListUserProjects(userID string) ([]*models.Project, error)

ListUserProjects retrieves all projects for a user

func (*Database) ListUserSessions

func (d *Database) ListUserSessions(userID string) ([]*models.Session, error)

ListUserSessions lists all sessions for a user

func (*Database) ListUsers

func (d *Database) ListUsers(projectID string) ([]*models.ProjectUser, error)

ListUsers returns all project users for a project

func (*Database) TranslateError

func (p *Database) TranslateError(err error) *models.TranslatedError

TranslateError attempts to translate the database specific error to a simple `error` to return to the user.

func (*Database) UpdateAPIKey

func (d *Database) UpdateAPIKey(projectID, keyID string, read, write bool, role string) error

UpdateAPIKey updates the role and access of an API key

func (*Database) UpdateAppSessionLastAccessed

func (d *Database) UpdateAppSessionLastAccessed(sessionID string, lastAccessed time.Time) error

UpdateAppSessionLastAccessed update session last accessed

func (*Database) UpdateDefDocument

func (d *Database) UpdateDefDocument(projectID, pathName, documentID string, updatedFields models.ResourceObject, filter map[string]interface{}) (*models.ResourceObject, *dsiErrors.DatastoreError)

UpdateDefDocument updates an existing document if it exists

func (*Database) UpdateDefinition

func (d *Database) UpdateDefinition(projectID, definitionID string, definition *models.ResourceDefinition) *dsiErrors.DatastoreError

UpdateDefinition updates the access fields of a definition

func (*Database) UpdateHook

func (d *Database) UpdateHook(projectID, hookID string, hook *models.WebHook) *errors.DatastoreError

UpdateHook updates all fields of a WebHook by project and hook ID

func (*Database) UpdateJSONKey

func (d *Database) UpdateJSONKey(projectID, rootKey string, data []byte, keys ...string) error

UpdateJSONKey updates the data at the key path. Creates a new key if it does not already exist.

func (*Database) UpdateProject

func (d *Database) UpdateProject(slug, userID string, project *models.Project) (*models.Project, error)

UpdateProject updates the project's name, description, icon, and user_registration

func (*Database) UpdateProjectSessionLastAccessed

func (d *Database) UpdateProjectSessionLastAccessed(projectID, sessionID string, lastAccessed time.Time) error

UpdateProjectSessionLastAccessed update session last accessed

func (*Database) UpdateProjectUserRegistration

func (d *Database) UpdateProjectUserRegistration(slug, userID string, registration bool) (*models.Project, error)

UpdateProjectUserRegistration updates the project authentication policy

func (*Database) UpdateRootKey

func (d *Database) UpdateRootKey(projectID string, rootKey *models.RootKey) error

UpdateRootKey updates the data at the key path. Creates a new key if it does not already exist.

func (*Database) UpdateUser

func (d *Database) UpdateUser(projectID, userID string, user *models.ProjectUser) error

UpdateUser updates the project user's access and role

func (*Database) UpdateUserPassword

func (d *Database) UpdateUserPassword(userID, passwordHash string) error

UpdateUserPassword updates the user's password

Jump to

Keyboard shortcuts

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