Documentation ¶
Overview ¶
Package storage holds the storage layer for the Proxeus core
Index ¶
- func CopyFile(db FilesIF, dstPath, srcPath string) (int64, error)
- func CopyFileAcross(dstDb, srcDb FilesIF, dstPath, srcPath string) (int64, error)
- func FileSize(db FilesIF, path string) int64
- type DBSet
- type ExternalNodeIF
- type FilesIF
- type FormIF
- type I18nIF
- type JSONFile
- type Options
- type SessionIF
- type SettingsIF
- type SignatureRequestsIF
- type TemplateIF
- type UserDataIF
- type UserIF
- type WorkflowIF
- type WorkflowPaymentsIF
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CopyFileAcross ¶
CopyFileAcross copies content between databases
Types ¶
type DBSet ¶
type DBSet struct { Settings SettingsIF I18n I18nIF Form FormIF Workflow WorkflowIF Template TemplateIF User UserIF UserData UserDataIF SignatureRequests SignatureRequestsIF WorkflowPayments WorkflowPaymentsIF Files FilesIF Session SessionIF }
DBSet holds all references to the Proxeus Database implementations
type ExternalNodeIF ¶
type ExternalNodeIF interface { // RegisterExternalNode saves an external node definition RegisterExternalNode(auth model.Auth, n *externalnode.ExternalNode) error // ListExternalNodes return a list of all external node definitions ListExternalNodes() []*externalnode.ExternalNode // DeleteExternalNode remove an external node definition DeleteExternalNode(auth model.Auth, id string) error // NodeByName retrieves an external node definition matching the supplied name NodeByName(auth model.Auth, name string) (*externalnode.ExternalNode, error) // QueryFromInstanceID return an external node instance by machting the specified id QueryFromInstanceID(auth model.Auth, id string) (externalnode.ExternalNodeInstance, error) // PutExternalNodeInstance saves an instance of an external node to the database PutExternalNodeInstance(auth model.Auth, i *externalnode.ExternalNodeInstance) error }
ExternalNodeIF is the interface to the external node definition database
type FilesIF ¶
type FilesIF interface { // Read returns a file content to the supplied writer Read(path string, w io.Writer) error // Write writes a file content from the supplied reader Write(path string, r io.Reader) error // Exists checks whether a file with a specific path exists in the file database Exists(path string) (bool, error) //Delete removes a file from the file database Delete(path string) error // Close closes the database Close() error }
FilesIF is the interface to a generic File
type FormIF ¶
type FormIF interface { // List returns the set of form items matching the supplied filter criteria List(auth model.Auth, contains string, options Options) ([]*model.FormItem, error) // Get returns one form item by its id Get(auth model.Auth, id string) (*model.FormItem, error) // Put inserts a form item Put(auth model.Auth, item *model.FormItem) error // Delete removes a form item from the database Delete(auth model.Auth, id string) error // DelComp removes a form component definition from the database DelComp(auth model.Auth, id string) error // PutComp saves a form component into the database PutComp(auth model.Auth, comp *model.FormComponentItem) error // GetComp retrieves a form component from the database GetComp(auth model.Auth, id string) (*model.FormComponentItem, error) // ListComp returns a list of form component matching the supplied filter criteria ListComp(auth model.Auth, contains string, options Options) (map[string]*model.FormComponentItem, error) // Vars returns a list of variable defined in a form Vars(auth model.Auth, contains string, options Options) ([]string, error) // Close closes the database Close() error }
Form is the interface to the form database
type I18nIF ¶
type I18nIF interface { // Find retrieves a list of translations matching the supplied filter criteria Find(keyContains string, valueContains string, options Options) (map[string]map[string]string, error) // Get retrieves a specific translation item Get(lang string, key string, args ...string) (string, error) // GetAll returns the full set of translations GetAll(lang string) (map[string]string, error) // PutAll saves the supplied translations into the database PutAll(lang string, translations map[string]string) error // Put saves a single translation into the database Put(lang string, key string, text string) error // PutLang adds a new language to the translation database PutLang(lang string, enabled bool) error // GetLangs returns a list of languages GetLangs(enabled bool) ([]*model.Lang, error) // HasLang checks indicates if a language exists HasLang(lang string) bool // GetAllLangs returns the full list of all languages defined GetAllLangs() ([]*model.Lang, error) // PutFallback sets a specific language as default/fallback PutFallback(lang string) error // GetFallback returns the currently defined default/fallback language GetFallback() (string, error) // Close closes the database Close() error }
I18nIF is the interface to the translation database
type JSONFile ¶
type JSONFile struct {
// contains filtered or unexported fields
}
func NewJSONFile ¶
NewJSONFile creates a representation for a File including its path and file permission
type Options ¶
type Options struct { Limit int `json:"limit"` Index int `json:"index"` Include map[string]interface{} `json:"include"` Exclude map[string]interface{} `json:"exclude"` MetaOnly bool `json:"metaOnly"` }
Options holds filter criteria for queries to the databases
func IndexOptions ¶
func (Options) WithInclude ¶
type SessionIF ¶
type SessionIF interface { // Get returns a session Get(sid string) (*model.Session, error) // Put inserts a session Put(s *model.Session) error // Delete removes a session Delete(s *model.Session) error // GetTokenRequest returns a token request GetTokenRequest(t model.TokenType, id string) (*model.TokenRequest, error) // PutTokenRequest inserts a token request PutTokenRequest(r *model.TokenRequest) error // DeleteTokenRequest removes a token request DeleteTokenRequest(r *model.TokenRequest) error // GetValue returns the value for the provided key GetValue(key string, v interface{}) error // PutValue sets the value for a key PutValue(key string, v interface{}) error // DeleteValue removes the value of a key DeleteValue(key string) error // Close closes the database Close() error }
SessionIF is the interface to the session database
type SettingsIF ¶
type SettingsIF interface { // Put adds a new set of settings into the database / file Put(stngs *model.Settings) error // Get retrieves all settings from the database / file Get() (*model.Settings, error) // Close closes the database Close() error }
SettingsIF is the interface to the general Proxeus configuration file
type SignatureRequestsIF ¶
type SignatureRequestsIF interface { // GetBySignatory returns the list of signature requests for a specific signatory GetBySignatory(ethAddr string) (*[]model.SignatureRequestItem, error) // GetByID returns the signature request item by its id GetByID(docid string, docpath string) (*[]model.SignatureRequestItem, error) // GetByHashAndSigner returns a list of signture requests for a specific file hash and signatory GetByHashAndSigner(hash string, signatory string) (*[]model.SignatureRequestItem, error) // Add saves a signature request into the database Add(item *model.SignatureRequestItem) error // SetRejected alters the status of a signature request to rejected SetRejected(docid string, docpath string, signatory string) error // SetRevoked alters the status of a signature request to revoked SetRevoked(docid string, docpath string, signatory string) error // Close closes the database Close() error }
UserDataIF is the interface to the signature requests database
type TemplateIF ¶
type TemplateIF interface { // List fetches template items from the database based on the supplied filter options List(auth model.Auth, contains string, options Options) ([]*model.TemplateItem, error) // Get retrieves a single template item using its key Get(auth model.Auth, id string) (*model.TemplateItem, error) // ProvideFileInfoFor returns the fileinfo for a file ProvideFileInfoFor(auth model.Auth, id, lang string, fm *file.Meta) (*file.IO, error) // PutVars inserts a new variable into the databse PutVars(auth model.Auth, id, lang string, vars []string) error // GetTemplate returns the file template GetTemplate(auth model.Auth, id, lang string) (*file.IO, error) // DeleteTemplate removes a template from the database DeleteTemplate(auth model.Auth, files FilesIF, id, lang string) error //Put inserts a template item Put(auth model.Auth, item *model.TemplateItem) error // Delete removes a template's files on the file system Delete(auth model.Auth, files FilesIF, id string) error // Vars returns a list of variables defines for a specific template Vars(auth model.Auth, contains string, options Options) ([]string, error) // AssetsKeys return the base filepath of the document templates AssetsKey() string // Close closes the databases Close() error }
TemplateIF is the interface to the template database
type UserDataIF ¶
type UserDataIF interface { // List returns all user data item matching the supplied filter criteria List(auth model.Auth, contains string, options Options, includeReadGranted bool) ([]*model.UserDataItem, error) // Delete removes user data and its accociates files from the database Delete(auth model.Auth, files FilesIF, id string) error // Get returns a specific user data item by matching the id Get(auth model.Auth, id string) (*model.UserDataItem, error) // GetAllFileInfosOf returns the associated file objects of a user data item GetAllFileInfosOf(ud *model.UserDataItem) []*file.IO // GetByWorkflow returns a the user data item by matching a specific workflow item GetByWorkflow(auth model.Auth, wf *model.WorkflowItem, finished bool) (*model.UserDataItem, bool, error) // GetData returns the data object for retrieving specific data from a data item GetData(auth model.Auth, id, dataPath string) (interface{}, error) // GetDataAndFiles returns the data object and associated files GetDataAndFiles(auth model.Auth, id, dataPath string) (interface{}, []string, error) // PutData inserts a data object into the data item database PutData(auth model.Auth, id string, dataObj map[string]interface{}) error // NewFile return a handle for a new data item file based on the defined base path and specific file metadata NewFile(auth model.Auth, meta file.Meta) *file.IO // GetDataFile returns the files associated with a data item GetDataFile(auth model.Auth, id, dataPath string) (*file.IO, error) // Put saves a user data item into the database Put(auth model.Auth, item *model.UserDataItem) error // AssetsKey returns the base path of the data items associated file AssetsKey() string // Close closes the database Close() error }
UserDataIF is the interface to the user's workflow data database
type UserIF ¶
type UserIF interface { // GetBaseFilePath returns the base file path GetBaseFilePath() string // Login tries to authenticate a user with the supplied credentials and returns the user object or an error Login(name, pw string) (*model.User, error) // Count returns the user count Count() (int, error) // List returns references to all the user object matching the supplied filter criteria List(auth model.Auth, contains string, options Options) ([]*model.User, error) // Get return a specific user object by machting its id Get(auth model.Auth, id string) (*model.User, error) // GetByBCAddress return a specific user object by matching the ethereum address GetByBCAddress(bcAddress string) (*model.User, error) // GetByEmail return a specific user object by matching the email address GetByEmail(email string) (*model.User, error) // UpdateEmail sets a new email address for a specific user id UpdateEmail(id, email string) error // Put saves a user object into the database Put(auth model.Auth, item *model.User) error // PutPw sets a new password for a specific user id PutPw(id, pass string) error // GetProfilePhoto returns a users photo GetProfilePhoto(auth model.Auth, id string, writer io.Writer) error // PutProfilePhoto sets a new photo for a specific user PutProfilePhoto(auth model.Auth, id string, reader io.Reader) error // APIKey tries to authenticate the user with the supplied API key and returns the user object or an error GetByApiKey(key string, id string) (*model.User, error) // CreateApiKey saves and returns a newly created random api key for a user CreateApiKey(auth model.Auth, userId, apiKeyName string) (string, error) // DeleteApiKey removes an existing API key DeleteApiKey(auth model.Auth, userId, hiddenApiKey string) error // Close closes the database Close() error }
UserIF is the interface to the user database
type WorkflowIF ¶
type WorkflowIF interface { // ListPublished returns all workflow items matching the supplied filter options that are flagged as published ListPublished(auth model.Auth, contains string, options Options) ([]*model.WorkflowItem, error) // ListPublished returns all workflow items matching the supplied filter options List(auth model.Auth, contains string, options Options) ([]*model.WorkflowItem, error) // GetPublished returns a workflow item matching the supplied filter options that if it is flagged as published GetPublished(auth model.Auth, id string) (*model.WorkflowItem, error) // Get retrieves a worklfow item machting its id Get(auth model.Auth, id string) (*model.WorkflowItem, error) // GetList retrieves multiple workflows by matching their id GetList(auth model.Auth, id []string) ([]*model.WorkflowItem, error) //Put adds a workflow item into the database Put(auth model.Auth, item *model.WorkflowItem) error // Delete removes a workflow item from the database by matching its id Delete(auth model.Auth, id string) error // Close closes the database Close() error ExternalNodeIF }
WorkflowIF is the interface to the workflow database
type WorkflowPaymentsIF ¶
type WorkflowPaymentsIF interface { // GetByTxHashAndStatusAndFromEthAddress returns a workflow payment item by matching the supplied filter parameters GetByTxHashAndStatusAndFromEthAddress(txHash, status, from string) (*model.WorkflowPaymentItem, error) // Get returns a specific Workflow payment item matching its id Get(paymentId string) (*model.WorkflowPaymentItem, error) // ConfirmPayment sets the status of a workflow payment item to confirmed by trying to find a matching transaction hash and searching for pending or created items matching the supplied criteria ConfirmPayment(txHash, from, to string, xes uint64) error // GetByWorkflowIdAndFromEthAddress returns a workflow payment item by matching the supplied filter parameters GetByWorkflowIdAndFromEthAddress(workflowID, fromEthAddr string, statuses []string) (*model.WorkflowPaymentItem, error) // SetAbandonedToTimeoutBeforeTime updates the status of all payment items created before the specified time to status timeout SetAbandonedToTimeoutBeforeTime(beforeTime time.Time) error // Save add a workflow payment item to the database Save(item *model.WorkflowPaymentItem) error // Update sets the status and tx hash of created workflow items matching the supplied criteria to the supplied values Update(paymentId, status, txHash, from string) error // Cancel sets the status of a workflow payment item to cancelled for the item matching the supplied id and from address Cancel(paymentId, from string) error // Redeem sets the status of a workflow payment item to redeemed for the item matching the supplied id and from address Redeem(workflowId, from string) error // Delete sets the status of a workflow payment item to deleted by matching the supplied id Delete(paymentId string) error // Remove removes a workflow payment item Remove(payment *model.WorkflowPaymentItem) error // All returns a list of all workflow payment items from the database All() ([]*model.WorkflowPaymentItem, error) // Close closes the database Close() error }
WorkflowPaymentsIF is the interface to the workflow payment database
Directories ¶
Path | Synopsis |
---|---|
db
Package db holds the database layer for the Proxeus core
|
Package db holds the database layer for the Proxeus core |
mock
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |