Documentation ¶
Index ¶
- type Database
- func (d *Database) ActivateUser(userID string, active bool) error
- func (d *Database) AddDefDocument(projectID, pathName string, fields models.ResourceObject, ...) (string, *dsiErrors.DatastoreError)
- func (d *Database) AddDefinition(projectID string, definition *models.ResourceDefinition) (string, *dsiErrors.DatastoreError)
- func (d *Database) AddHook(projectID string, hook *models.WebHook) *errors.DatastoreError
- func (d *Database) AddProjectLog(projectID string, log *models.Log) error
- func (d *Database) AddResult(result *models.HookResult) *errors.DatastoreError
- func (d *Database) CheckIfRelationsExistBeforeInsert(projectID string, fields models.ResourceObject, ...) *dsiErrors.DatastoreError
- func (d *Database) CountDefDocuments(projectID, pathName string, filter map[string]interface{}) (int64, *dsiErrors.DatastoreError)
- func (d *Database) CountProjectLogs(projectID string, filter *models.Filters) (int64, error)
- func (d *Database) CreateAPIKey(projectID, hash, description string, read, write bool, role string) (*models.ProjectAPIKey, error)
- func (d *Database) CreateAppSession(session *models.Session) error
- func (d *Database) CreateAppUser(user *models.User) error
- func (d *Database) CreateJSONKey(projectID, rootKey string, data []byte, keys ...string) error
- func (d *Database) CreateProject(userID, slug, name, description, icon string, authn bool, register bool) (*models.Project, error)
- func (d *Database) CreateRootKey(projectID, rootKey string, data []byte) error
- func (d *Database) CreateSession(projectID string, session *models.Session) error
- func (d *Database) CreateUser(projectID string, user *models.ProjectUser) error
- func (d *Database) DeleteAPIKey(projectID, keyID string) error
- func (d *Database) DeleteAppSession(sessionID string) error
- func (d *Database) DeleteDefDocument(projectID, path, documentID string, filter map[string]interface{}) *dsiErrors.DatastoreError
- func (d *Database) DeleteDefinition(projectID, definitionID string) *dsiErrors.DatastoreError
- func (d *Database) DeleteHook(projectID, hookID string) *errors.DatastoreError
- func (d *Database) DeleteJSONKey(projectID, rootKey string, keys ...string) error
- func (d *Database) DeleteProject(projectID string) error
- func (d *Database) DeleteRootKey(projectID, rootKey string) error
- func (d *Database) DeleteSession(projectID, sessionID string) error
- func (d *Database) DeleteUser(projectID, userID string) error
- func (d *Database) DropDefDocuments(projectID, path string) *dsiErrors.DatastoreError
- func (d *Database) DropProjectDefDocuments(projectID string) *dsiErrors.DatastoreError
- func (d *Database) DropProjectKeys(projectID string) error
- func (d *Database) DropProjectLogs(projectID string) error
- func (d *Database) DropProjectResources(projectID string) *dsiErrors.DatastoreError
- func (d *Database) DropProjectSessions(projectID string) error
- func (d *Database) DropProjectUsers(projectID string) error
- func (d *Database) GetAPIKeyByKey(projectID, hash string) (*models.ProjectAPIKey, error)
- func (d *Database) GetAppSession(sessionID string) (*models.Session, error)
- func (d *Database) GetAppUserByID(userID string) (*models.User, error)
- func (d *Database) GetAppUserByUsername(userName string) (*models.User, error)
- func (d *Database) GetDefDocument(projectID, path, documentID string, filter map[string]interface{}, ...) (map[string]interface{}, *dsiErrors.DatastoreError)
- func (d *Database) GetDefinition(projectID, definitionID string) (*models.ResourceDefinition, *dsiErrors.DatastoreError)
- func (d *Database) GetDefinitionByPathName(projectID, pathName string) (*models.ResourceDefinition, *dsiErrors.DatastoreError)
- func (d *Database) GetHook(projectID, hookID string) (*models.WebHook, *errors.DatastoreError)
- func (d *Database) GetJSONKey(projectID, rootKey string, keys ...string) ([]byte, error)
- func (d *Database) GetProjectBySlug(slug string) (*models.Project, error)
- func (d *Database) GetProjectBySlugAndUserID(slug, userID string) (*models.Project, error)
- func (d *Database) GetProjectDetailBySlug(slug string) (*models.ProjectDetail, error)
- func (d *Database) GetResourceStats(projectID, pathName string) (*models.Stats, *dsiErrors.DatastoreError)
- func (d *Database) GetRootKey(projectID, rootKey string) (*models.RootKey, error)
- func (d *Database) GetSession(projectID, sessionID string) (*models.Session, error)
- func (d *Database) GetUserByID(projectID, userID string) (*models.ProjectUser, error)
- func (d *Database) GetUserByUsername(projectID, userName string) (*models.ProjectUser, error)
- func (d *Database) ListAPIKeys(projectID string) ([]*models.ProjectAPIKey, error)
- func (d *Database) ListDefDocuments(projectID, pathName string, limit, offset int64, filter map[string]interface{}, ...) ([]map[string]interface{}, *dsiErrors.DatastoreError)
- func (d *Database) ListDefinitions(projectID string) ([]*models.ResourceDefinition, *dsiErrors.DatastoreError)
- func (d *Database) ListHooks(projectID string) ([]*models.WebHook, *errors.DatastoreError)
- func (d *Database) ListProjectLogs(projectID string, limit, offset int64, filter *models.Filters, ...) ([]*models.Log, error)
- func (d *Database) ListResults(projectID, hookID string) ([]*models.HookResult, *errors.DatastoreError)
- func (d *Database) ListRootKeys(projectID string) ([]*models.RootKey, error)
- func (d *Database) ListSessions(projectID string) ([]*models.Session, error)
- func (d *Database) ListTiers() ([]*models.Tier, error)
- func (d *Database) ListUserProjects(userID string) ([]*models.Project, error)
- func (d *Database) ListUserSessions(userID string) ([]*models.Session, error)
- func (d *Database) ListUsers(projectID string) ([]*models.ProjectUser, error)
- func (p *Database) TranslateError(err error) *models.TranslatedError
- func (d *Database) UpdateAPIKey(projectID, keyID string, read, write bool, role string) error
- func (d *Database) UpdateAppSessionLastAccessed(sessionID string, lastAccessed time.Time) error
- func (d *Database) UpdateDefDocument(projectID, pathName, documentID string, updatedFields models.ResourceObject, ...) (*models.ResourceObject, *dsiErrors.DatastoreError)
- func (d *Database) UpdateDefinition(projectID, definitionID string, definition *models.ResourceDefinition) *dsiErrors.DatastoreError
- func (d *Database) UpdateHook(projectID, hookID string, hook *models.WebHook) *errors.DatastoreError
- func (d *Database) UpdateJSONKey(projectID, rootKey string, data []byte, keys ...string) error
- func (d *Database) UpdateProject(slug, userID string, project *models.Project) (*models.Project, error)
- func (d *Database) UpdateProjectSessionLastAccessed(projectID, sessionID string, lastAccessed time.Time) error
- func (d *Database) UpdateProjectUserRegistration(slug, userID string, registration bool) (*models.Project, error)
- func (d *Database) UpdateRootKey(projectID string, rootKey *models.RootKey) error
- func (d *Database) UpdateUser(projectID, userID string, user *models.ProjectUser) error
- func (d *Database) UpdateUserPassword(userID, passwordHash string) error
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 (*Database) ActivateUser ¶
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) AddProjectLog ¶
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 ¶
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 ¶
CreateAppSession create new session for an application user
func (*Database) CreateAppUser ¶
CreateAppUser saves a new application user, updates user ID
func (*Database) CreateJSONKey ¶
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 ¶
CreateRootKey creates a new rootkey with a JSON tree
func (*Database) CreateSession ¶
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 ¶
DeleteAPIKey removes a project api key permanently
func (*Database) DeleteAppSession ¶
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 ¶
DeleteJSONKey permanently removes the data at the key path.
func (*Database) DeleteProject ¶
DeleteProject permanently removes a project based on project slug
func (*Database) DeleteRootKey ¶
DeleteRootKey permanently deletes an entire rootkey's tree
func (*Database) DeleteSession ¶
DeleteSession removes a project user's session by project and ID
func (*Database) DeleteUser ¶
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 ¶
DropProjectKeys drops the key collection for this project
func (*Database) DropProjectLogs ¶
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 ¶
DropProjectSessions drops the collection of this project's user sessions
func (*Database) DropProjectUsers ¶
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 ¶
GetAppSession retrieve a single application session by ID
func (*Database) GetAppUserByID ¶
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 ¶
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) GetJSONKey ¶
GetJSONKey retrieves the object at the key path
func (*Database) GetProjectBySlug ¶
GetProjectBySlug retrieves a project by slug
func (*Database) GetProjectBySlugAndUserID ¶
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 ¶
GetRootKey retrieves a single root key by the key name
func (*Database) GetSession ¶
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) 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 ¶
ListRootKeys lists all root keys with associated metadata, does not include jsonb
func (*Database) ListSessions ¶
ListSessions lists all sessions for a project
func (*Database) ListUserProjects ¶
ListUserProjects retrieves all projects for a user
func (*Database) ListUserSessions ¶
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 ¶
UpdateAPIKey updates the role and access of an API key
func (*Database) UpdateAppSessionLastAccessed ¶
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 ¶
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 ¶
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 ¶
UpdateUserPassword updates the user's password