service

package
v1.6.6 Latest Latest
Warning

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

Go to latest
Published: Jul 24, 2024 License: GPL-3.0 Imports: 32 Imported by: 0

Documentation

Overview

Package service holds the service layer for the Proxeus core

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrDocAppNotFound = errors.New("doc app not found")
	ErrUnableToEdit   = errors.New("document edit failed")
)
View Source
var ErrSignatureRequestAlreadyExists = errors.New("Request already exists")
View Source
var (
	ErrTxHashEmpty = errors.New("no txHash given")
)

Functions

func GetDataManager

func GetDataManager(auth model.MemoryAuth) form.DataManager

GetDataManager returns the form.DataManager

func Init

func Init(s *sys.System)

func NewApiService

func NewApiService() *defaultApiService

func NewAuthenticationService

func NewAuthenticationService(userS UserService, workflowS WorkflowService, emailS EmailService) *defaultAuthenticationService

func NewNodeService

func NewNodeService(workflowService WorkflowService) *defaultNodeService

func NewUserService

func NewUserService() *defaultUserService

Types

type ApiService

type ApiService interface {
	// CreateApiKey creates and returns a new api key
	CreateApiKey(auth model.Auth, userId, apiKeyName string) (string, error)

	// DeleteApiKey removes an existing API key
	DeleteApiKey(auth model.Auth, userId, hiddenApiKey string) error

	// AuthenticateWithApiKey tries to authenticate the user with the supplied API key and returns the user object or an error
	AuthenticateWithApiKey(apiKey string) (*model.User, error)

	// AuthenticateApiKeyForUser tries to authenticate with supplied API key and user ID
	AuthenticateApiKeyForUser(apiKey string, userId string) (*model.User, error)
}

ApiService is an interface that provides api key functions

type AuthenticationService

type AuthenticationService interface {

	// LoginWithUsernamePassword performs a login with username and password
	LoginWithUsernamePassword(email, password string) (*model.User, error)

	// LoginWithWallet logs the user in when the login is done with a signature (e.g. Metamask)
	LoginWithWallet(challenge, signature string) (bool, *model.User, error)

	// ChangeEmail Changes the email of a user
	ChangeEmail(tokenID string) (*model.TokenRequest, error)

	// ResetPasswordRequest sends an email request to the user to reset the password
	ResetPasswordRequest(translator www.Translator, scheme, host string, m *model.TokenRequest) (model.TokenRequest, error)

	// ResetPassword resets the users password
	ResetPassword(translator www.Translator, password, tokenID string) (error, map[string]interface{})

	// RegisterRequest sends an email request to the user to register
	RegisterRequest(translator www.Translator, scheme, host string, m *model.TokenRequest) (model.TokenRequest, error)

	// Register registers the user on the platform
	Register(translator www.Translator, tokenID, password string) (error, map[string]interface{})

	// PutTokenRequest saves the tokenRequest in the sessionDB
	PutTokenRequest(token *model.TokenRequest) error
}

AuthenticationService is an interface that provides user authentication functions

type DefaultDocumentService

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

func NewDocumentService

func NewDocumentService(userS UserService, fileS FileService) *DefaultDocumentService

func (*DefaultDocumentService) Delete

func (me *DefaultDocumentService) Delete(auth model.MemoryAuth, id string) error

Delete removes the existing document with the provided id

func (*DefaultDocumentService) Edit

func (me *DefaultDocumentService) Edit(auth model.Auth, userId string, formInput map[string]interface{}) error

Edit modifies the document name and detail

func (*DefaultDocumentService) GetDocApp

GetDocApp returns the DocumentFlowInstance with the passed id

func (*DefaultDocumentService) GetFile

func (me *DefaultDocumentService) GetFile(auth model.MemoryAuth, id, inputName string) (*file.IO, error)

GetFile returns a file by id and input name

func (*DefaultDocumentService) GetWorkflowSchema

func (me *DefaultDocumentService) GetWorkflowSchema(auth model.Auth, workflowId string) (*model.WorkflowItem, map[string]interface{}, error)

GetWorkflowSchema Returns the workflow by id

func (*DefaultDocumentService) Next

func (me *DefaultDocumentService) Next(auth model.MemoryAuth, id, lang string, data map[string]interface{}, final bool) (*app.DocumentFlowInstance, *app.Status, error)

Next proceeds to the next workflow step

func (*DefaultDocumentService) Prev

func (me *DefaultDocumentService) Prev(auth model.MemoryAuth, id string) (*app.Status, error)

Prev returns to the previous workflow step

func (*DefaultDocumentService) Preview

func (me *DefaultDocumentService) Preview(auth model.MemoryAuth, id, templateId, lang, format string) (*app.PreviewResponse, error)

Preview gets a file Preview for a template

func (*DefaultDocumentService) Update

func (me *DefaultDocumentService) Update(auth model.MemoryAuth, id string, data map[string]interface{}) (validate.ErrorMap, error)

Update changes the data of the workflow

func (*DefaultDocumentService) UpdateFile

func (me *DefaultDocumentService) UpdateFile(auth model.MemoryAuth, id, fieldName, fileName, contentType string, reader io.Reader) (*file.IO, validate.Errors, error)

UpdateFile modifies the file of the current workflow

type DefaultEmailService

type DefaultEmailService struct {
}

func (*DefaultEmailService) Send

func (me *DefaultEmailService) Send(emailTo, subject, body string) error

Send dispatches an email. The body can contain html tags. The sender of email will be the default EmailFrom value that is configured in the settings.

func (*DefaultEmailService) SendFrom

func (me *DefaultEmailService) SendFrom(emailFrom, emailTo, subject, body string) error

SendFrom dispatches an email. The body can contain html tags. Additionally specify the sender of the email with the emailFrom parameter

type DefaultFileService

type DefaultFileService struct {
}

func NewFileService

func NewFileService() *DefaultFileService

func (*DefaultFileService) GetDataAndFiles

func (me *DefaultFileService) GetDataAndFiles(auth model.Auth, id, dataPath string) (interface{}, []string, error)

GetDataAndFiles returns the data and files by id and dataPath

func (*DefaultFileService) GetDataFile

func (me *DefaultFileService) GetDataFile(auth model.Auth, id, dataPath string) (*file.IO, error)

GetDataFile returns the file by id and dataPath

func (*DefaultFileService) Read

func (me *DefaultFileService) Read(path string, w io.Writer) error

Read reads the file in path into writer

type DefaultFormComponentService

type DefaultFormComponentService struct {
}

func NewFormComponentService

func NewFormComponentService() *DefaultFormComponentService

func (*DefaultFormComponentService) DelComp

func (me *DefaultFormComponentService) DelComp(auth model.Auth, id string) error

DelComp removes a form component

func (*DefaultFormComponentService) EnsureDefaultFormComponents

func (me *DefaultFormComponentService) EnsureDefaultFormComponents(auth model.Auth) error

EnsureDefaultFormComponents creates all default form components

func (*DefaultFormComponentService) GetComp

GetComp returns a form component by id

func (*DefaultFormComponentService) ListComp

func (me *DefaultFormComponentService) ListComp(auth model.Auth, contains string, options storage.Options) (map[string]*model.FormComponentItem, error)

ListComp lists all components that match contains and storage.options

func (*DefaultFormComponentService) SetComp

SetComp sets a form components

type DefaultFormService

type DefaultFormService struct {
}

func NewFormService

func NewFormService() *DefaultFormService

func (*DefaultFormService) Delete

func (me *DefaultFormService) Delete(auth model.Auth, id string) error

Delete a form by id

func (*DefaultFormService) ExportForms

func (me *DefaultFormService) ExportForms(auth model.Auth, id, contains string) []string

ExportForms returns the id of all forms

func (*DefaultFormService) Get

func (me *DefaultFormService) Get(auth model.Auth, id string) (*model.FormItem, error)

Get returns a form by id

func (*DefaultFormService) GetFormData

func (me *DefaultFormService) GetFormData(auth model.MemoryAuth, id string, reset bool) (map[string]interface{}, error)

GetFormData returns the data of a form If the reset flag is set the data will be cleared

func (*DefaultFormService) GetFormFile

func (me *DefaultFormService) GetFormFile(auth model.MemoryAuth, id string, fieldname string, writer io.Writer) error

GetFormFile reads the contents of a form file into the writer

func (*DefaultFormService) List

func (me *DefaultFormService) List(auth model.Auth, contains string, options storage.Options) ([]*model.FormItem, error)

List returns a list of all forms

func (*DefaultFormService) PostFormFile

func (me *DefaultFormService) PostFormFile(auth model.MemoryAuth, id string, fileName string, fieldname string, reader io.ReadCloser, contentType string) (interface{}, error)

PostFormFile sets the form file from the reader

func (*DefaultFormService) SetFormSrc

func (me *DefaultFormService) SetFormSrc(auth model.MemoryAuth, id string, formSrc map[string]interface{}) error

SetFormSrc sets the data from formSrc to the form

func (*DefaultFormService) TestFormData

func (me *DefaultFormService) TestFormData(auth model.MemoryAuth, id string, input map[string]interface{}, submit bool) (validate.ErrorMap, error)

TestFormData validates and sets data

func (*DefaultFormService) UpdateForm

func (me *DefaultFormService) UpdateForm(auth model.Auth, id string, reader io.ReadCloser) (*model.FormItem, error)

UpdateForm updates the form with the data from the reader

func (*DefaultFormService) Vars

func (me *DefaultFormService) Vars(auth model.Auth, contains string, options storage.Options) ([]string, error)

Returns a list of variable defined in a form

type DefaultPaymentService

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

func NewPaymentService

func NewPaymentService(userService UserService) *DefaultPaymentService

Important: Pass system to service (and not e.g. system.DB.WorkflowPayments because system.DB variable is replaced on calling api/handlers.PostInit()

func (*DefaultPaymentService) All

All returns a list of all WorkflowPaymentItem

func (*DefaultPaymentService) CancelWorkflowPayment

func (me *DefaultPaymentService) CancelWorkflowPayment(paymentId, ethAddress string) error

CancelWorkflowPayment sets the status of a WorkflowPaymentItem to "cancelled"

func (*DefaultPaymentService) CheckForWorkflowPayment

func (me *DefaultPaymentService) CheckForWorkflowPayment(auth model.Auth, workflowId string) error

CheckForWorkflowPayment checks whether a workflow payment is required. If a payment is required checks whether a payment with status "confirmed" is found.

func (*DefaultPaymentService) CheckIfWorkflowPaymentRequired

func (me *DefaultPaymentService) CheckIfWorkflowPaymentRequired(auth model.Auth, workflowId string) (bool, error)

CheckIfWorkflowPaymentRequired returns whether a payment is required for the user for a workflow

func (*DefaultPaymentService) CreateWorkflowPayment

func (me *DefaultPaymentService) CreateWorkflowPayment(auth model.Auth, workflowId, ethAddress string) (*model.WorkflowPaymentItem, error)

CreateWorkflowPayment creates a workflow payment for a workflow by the ethAddress with the status "created".

func (*DefaultPaymentService) Delete

func (me *DefaultPaymentService) Delete(paymentId string) error

Delete sets the status of a CheckForWorkflowPayment to "deleted"

func (*DefaultPaymentService) GetWorkflowPayment

func (me *DefaultPaymentService) GetWorkflowPayment(txHash, ethAddresses, status string) (*model.WorkflowPaymentItem, error)

GetWorkflowPayment returns a WorkflowPaymentItem that matches the txHash, ethAddress and status

func (*DefaultPaymentService) GetWorkflowPaymentById

func (me *DefaultPaymentService) GetWorkflowPaymentById(paymentId string) (*model.WorkflowPaymentItem, error)

GetWorkflowPaymentById returns a WorkflowPaymentItem for the id

func (*DefaultPaymentService) RedeemPayment

func (me *DefaultPaymentService) RedeemPayment(workflowId, ethAddr string) error

RedeemPayment sets the payment status of WorkflowPaymentItem from "confirmed" to "redeemed"

func (*DefaultPaymentService) UpdateWorkflowPaymentPending

func (me *DefaultPaymentService) UpdateWorkflowPaymentPending(paymentId, txHash, ethAddress string) error

UpdateWorkflowPaymentPending updates a WorkflowPaymentItem with status "created" and sets it to status "pending"

type DefaultSignatureService

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

func (*DefaultSignatureService) AddAndNotify

func (me *DefaultSignatureService) AddAndNotify(auth model.Auth, translator www.Translator, id, docId, signatory, host, scheme string) error

AddAndNotify adds a new signature request and if the signatory has provided an email address sends an email notification.

func (*DefaultSignatureService) GetById

func (me *DefaultSignatureService) GetById(id, documentId string) (SignatureRequestsMinimal, error)

GetById returns the signature request related to the provided documentId

func (*DefaultSignatureService) GetForCurrentUser

func (me *DefaultSignatureService) GetForCurrentUser(auth model.Auth) (SignatureRequestsComplete, error)

GetForCurrentUser returns a list of the signature requests for the current user

func (*DefaultSignatureService) RejectAndNotify

func (me *DefaultSignatureService) RejectAndNotify(auth model.Auth, translator www.Translator, id, docId, host string) error

RejectAndNotify rejects an existing signature request and if the signatory has provided an email address sends an email notification.

func (*DefaultSignatureService) RevokeAndNotify

func (me *DefaultSignatureService) RevokeAndNotify(auth model.Auth, translator www.Translator, id, docId, signatory, host, scheme string) error

RevokeAndNotify revokes an existing signature request and if the signatory has provided an email address sends an email notification.

type DefaultTemplateDocumentService

type DefaultTemplateDocumentService struct {
}

func NewTemplateDocumentService

func NewTemplateDocumentService() *DefaultTemplateDocumentService

func (*DefaultTemplateDocumentService) Compile

func (me *DefaultTemplateDocumentService) Compile(template eio.Template) (*http.Response, error)

Compile compiles a template with the documentService

func (*DefaultTemplateDocumentService) DeleteTemplate

func (me *DefaultTemplateDocumentService) DeleteTemplate(auth model.Auth, id, lang string) error

DeleteTemplate remove a template

func (*DefaultTemplateDocumentService) DeleteTemplateFiles

func (me *DefaultTemplateDocumentService) DeleteTemplateFiles(auth model.Auth, id string) error

DeleteTemplateFiles removes template files

func (*DefaultTemplateDocumentService) DownloadExtension

func (me *DefaultTemplateDocumentService) DownloadExtension(os string) (resp *http.Response, err error)

DownloadExtensions downloads the template assistance extension for your writer.

func (*DefaultTemplateDocumentService) Exists

func (me *DefaultTemplateDocumentService) Exists(path string) (bool, error)

Exists returns whether a file under the specified path exists

func (*DefaultTemplateDocumentService) Get

Get returns a template item

func (*DefaultTemplateDocumentService) GetTemplate

func (me *DefaultTemplateDocumentService) GetTemplate(auth model.Auth, id, lang string) (*file.IO, error)

GetTemplate returns a template file

func (*DefaultTemplateDocumentService) GetTemplateVars

func (me *DefaultTemplateDocumentService) GetTemplateVars(auth model.Auth, contains string, settings storage.Options) ([]string, error)

GetTemplateVars returns the template variables

func (*DefaultTemplateDocumentService) List

func (me *DefaultTemplateDocumentService) List(auth model.Auth, contains string, options storage.Options) ([]*model.TemplateItem, error)

List returns a list of template items

func (*DefaultTemplateDocumentService) Put

Put sets a template item

func (*DefaultTemplateDocumentService) ReadFile

func (me *DefaultTemplateDocumentService) ReadFile(path string, writer io.Writer) error

ReadFile reads a file and writes it into the writer

func (*DefaultTemplateDocumentService) SaveTemplate

func (me *DefaultTemplateDocumentService) SaveTemplate(auth model.Auth, id, lang, contentType, fileName string, data []byte) error

SaveTemplate saves the template

type DefaultUserDocumentService

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

func NewUserDocumentService

func NewUserDocumentService(userS UserService, fileS FileService, templateDocumentS TemplateDocumentService) *DefaultUserDocumentService

func (*DefaultUserDocumentService) Get

Get returns the UserDataItem with the id

func (*DefaultUserDocumentService) GetByWorkflow

func (me *DefaultUserDocumentService) GetByWorkflow(auth model.Auth, wf *model.WorkflowItem, finished bool) (*model.UserDataItem, bool, error)

GetByWorkflow returns the userDataItem with the provided workflow

func (*DefaultUserDocumentService) GetDocFile

func (me *DefaultUserDocumentService) GetDocFile(auth model.Auth, id, dataPath, inlineOrAttachment string) (*FileHeaderResponse, string, error)

GetDocFile returns file info for a pdf file that was generated from a workflow

func (*DefaultUserDocumentService) GetTemplateWithFormatFile

func (me *DefaultUserDocumentService) GetTemplateWithFormatFile(auth model.Auth, id, dataPath, format, inlineOrAttachment string) (*FileHeaderResponse, io.ReadCloser, error)

GetTemplateWithFormatFile returns file info for a docx file that was generated from a workflow

func (*DefaultUserDocumentService) List

func (me *DefaultUserDocumentService) List(auth model.Auth, contains string, settings storage.Options) ([]*model.UserDataItem, error)

List returns a list of UserDataItem that contain the string passed in contain. settings are used to modify the result list

func (*DefaultUserDocumentService) Put

func (me *DefaultUserDocumentService) Put(auth model.Auth, userDataItem *model.UserDataItem) error

Put sets the UserDataItem

type DefaultWorkflowService

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

func NewWorkflowService

func NewWorkflowService(userService UserService) *DefaultWorkflowService

func (*DefaultWorkflowService) CopyWorkflows

func (me *DefaultWorkflowService) CopyWorkflows(rootUser, newUser *model.User)

CopyWorkflows copies the workflow and related forms and templates to the new user

func (*DefaultWorkflowService) Delete

func (me *DefaultWorkflowService) Delete(auth model.Auth, id string) error

Delete removes a WorkflowItem

func (*DefaultWorkflowService) Get

Get returns a workflow by the provided id

func (*DefaultWorkflowService) GetAndPopulateOwner

func (me *DefaultWorkflowService) GetAndPopulateOwner(auth model.Auth, id string) (*model.WorkflowItem, error)

GetAndPopulateOwner a workflow by the provided id and sets the OwnerEthAddress

func (*DefaultWorkflowService) GetPublished

func (me *DefaultWorkflowService) GetPublished(auth model.Auth, id string) (*model.WorkflowItem, error)

GetPublished returns a workflow item matching the supplied filter options that if it is flagged as published

func (*DefaultWorkflowService) InstantiateExternalNode

func (me *DefaultWorkflowService) InstantiateExternalNode(auth model.Auth, nodeId, nodeName string) (*extNode.ExternalQuery, error)

InstantiateExternalNode creates a new instance of an external node

func (*DefaultWorkflowService) List

func (me *DefaultWorkflowService) List(auth model.Auth, contains string, options storage.Options) ([]*model.WorkflowItem, error)

List returns a list of all WorkflowItem that match "contains" and the provided storage.Options

func (*DefaultWorkflowService) ListIds

func (me *DefaultWorkflowService) ListIds(auth model.Auth, contains string, options storage.Options) ([]string, error)

ListIds returns a list of all workflow ids that match contains and the provided storage.Options

func (*DefaultWorkflowService) ListPublished

func (me *DefaultWorkflowService) ListPublished(auth model.Auth, contains string, options storage.Options) ([]*model.WorkflowItem, error)

ListPublished returns a list of published WorkflowItem that match "contains" and the provided storage.Options

func (*DefaultWorkflowService) Publish

func (me *DefaultWorkflowService) Publish(auth model.Auth, wfItem *model.WorkflowItem) map[string]interface{}

Publish publishes a workflowItem

func (*DefaultWorkflowService) Put

func (me *DefaultWorkflowService) Put(auth model.Auth, wfItem *model.WorkflowItem) error

Put saves a WorkflowItem

type DocumentService

type DocumentService interface {
	// GetWorkflowSchema Returns the workflow by id
	GetWorkflowSchema(auth model.Auth, workflowId string) (*model.WorkflowItem, map[string]interface{}, error)

	// GetWorkflowSchema Returns the workflow by id
	Edit(auth model.Auth, userId string, formInput map[string]interface{}) error

	// GetDocApp returns the DocumentFlowInstance with the passed id
	GetDocApp(auth model.MemoryAuth, id string) *app.DocumentFlowInstance

	// Update changes the data of the workflow
	Update(auth model.MemoryAuth, id string, data map[string]interface{}) (validate.ErrorMap, error)

	// UpdateFile modifies the file of the current workflow
	UpdateFile(auth model.MemoryAuth, id, fieldName, fileName, contentType string, reader io.Reader) (*file.IO, validate.Errors, error)

	// Next proceeds to the next workflow step
	Next(auth model.MemoryAuth, id, lang string, data map[string]interface{}, final bool) (*app.DocumentFlowInstance, *app.Status, error)

	// Prev returns to the previous workflow step
	Prev(auth model.MemoryAuth, id string) (*app.Status, error)

	// GetFile returns a file by id and input name
	GetFile(auth model.MemoryAuth, id, inputName string) (*file.IO, error)

	// Preview gets a file Preview for a template
	Preview(auth model.MemoryAuth, id, templateId, lang, format string) (*app.PreviewResponse, error)

	// Delete removes the existing document with the provided id
	Delete(auth model.MemoryAuth, id string) error
}

DocumentService is an interface that provides user document functions

type EmailService

type EmailService interface {

	// Send dispatches an email. The body can contain html tags.
	// The sender of email will be the default EmailFrom value that is configured in the settings.
	Send(emailTo, subject, body string) error

	// SendFrom dispatches an email. The body can contain html tags.
	// Additionally specify the sender of the email with the emailFrom parameter
	SendFrom(emailFrom, emailTo, subject, body string) error
}

EmailService is an interface that provides functions to send emails

func NewEmailService

func NewEmailService() EmailService

type FileHeaderResponse

type FileHeaderResponse struct {
	ContentType        string
	ContentDisposition string
	ContentLength      string
	ContentPages       string
}

type FileService

type FileService interface {
	// Read reads the file in path into writer
	Read(path string, w io.Writer) error

	// GetDataFile returns the file by id and dataPath
	GetDataFile(auth model.Auth, id, dataPath string) (*file.IO, error)

	// GetDataAndFiles returns the data and files by id and dataPath
	GetDataAndFiles(auth model.Auth, id, dataPath string) (interface{}, []string, error)
}

FileService is an interface that provides file functions

type FormComponentService

type FormComponentService interface {

	//EnsureDefaultFormComponents creates all default form components
	EnsureDefaultFormComponents(auth model.Auth) error

	// DelComp removes a form component
	DelComp(auth model.Auth, id string) error

	// SetComp sets a form components
	SetComp(auth model.Auth, reader io.ReadCloser) (*model.FormComponentItem, error)

	// GetComp returns a form component by id
	GetComp(auth model.Auth, id string) (*model.FormComponentItem, error)

	// ListComp lists all components that match contains and storage.options
	ListComp(auth model.Auth, contains string, options storage.Options) (map[string]*model.FormComponentItem, error)
}

FormComponentService is an interface that provides form component functions

type FormService

type FormService interface {
	// List returns a list of all forms
	List(auth model.Auth, contains string, options storage.Options) ([]*model.FormItem, error)

	// Get returns a form by id
	Get(auth model.Auth, id string) (*model.FormItem, error)

	// ExportForms returns the id of all forms
	ExportForms(auth model.Auth, id, contains string) []string

	// UpdateForm updates the form with the data from the reader
	UpdateForm(auth model.Auth, id string, reader io.ReadCloser) (*model.FormItem, error)

	// Delete a form by id
	Delete(auth model.Auth, id string) error

	// Returns a list of variable defined in a form
	Vars(auth model.Auth, contains string, options storage.Options) ([]string, error)

	// GetFormData returns the data of a form
	// If the reset flag is set the data will be cleared
	GetFormData(auth model.MemoryAuth, id string, reset bool) (map[string]interface{}, error)

	// SetFormSrc sets the data from formSrc to the form
	SetFormSrc(auth model.MemoryAuth, id string, formSrc map[string]interface{}) error

	// GetFormFile reads the contents of a form file into the writer
	GetFormFile(auth model.MemoryAuth, id string, fieldname string, writer io.Writer) error

	// TestFormData validates and sets data
	TestFormData(auth model.MemoryAuth, id string, input map[string]interface{}, submit bool) (validate.ErrorMap, error)

	// PostFormFile sets the form file from the reader
	PostFormFile(auth model.MemoryAuth, id string, fileName string, fieldname string, reader io.ReadCloser, contentType string) (interface{}, error)
}

FormService is an interface that provides form functions

type NodeService

type NodeService interface {

	//ProbeExternalNodes checks all registered external nodes health endpoint and deletes the ones that are offline
	ProbeExternalNodes()

	//List returns a list of workflow nodes.
	List(nodeType string) []*workflow.Node

	// RegisterExternalNode saves an external node definition
	RegisterExternalNode(user *model.User, node *externalnode.ExternalNode) error

	// ListExternalNodes return a list of all external node definitions
	ListExternalNodes() []*externalnode.ExternalNode

	// QueryFromInstanceID return an external node instance by machting the specified id
	QueryFromInstanceID(auth model.Auth, nodeId string) (externalnode.ExternalNodeInstance, error)

	// PutExternalNodeInstance saves an instance of an external node to the database
	PutExternalNodeInstance(auth model.Auth, instance *externalnode.ExternalNodeInstance) error
}

NodeService is an interface that provides node functions

type PaymentService

type PaymentService interface {

	// CreateWorkflowPayment creates a workflow payment for a workflow by the ethAddress with the status "created".
	CreateWorkflowPayment(auth model.Auth, workflowId, ethAddress string) (*model.WorkflowPaymentItem, error)

	// GetWorkflowPaymentById returns a WorkflowPaymentItem for the id
	GetWorkflowPaymentById(paymentId string) (*model.WorkflowPaymentItem, error)

	//GetWorkflowPayment returns a WorkflowPaymentItem that matches the txHash, ethAddress and status
	GetWorkflowPayment(txHash, ethAddresses, status string) (*model.WorkflowPaymentItem, error)

	// UpdateWorkflowPaymentPending updates a WorkflowPaymentItem with status "created" and sets it to status "pending"
	UpdateWorkflowPaymentPending(paymentId, txHash, ethAddress string) error

	// CancelWorkflowPayment sets the status of a WorkflowPaymentItem to "cancelled"
	CancelWorkflowPayment(paymentId, ethAddress string) error

	// RedeemPayment sets the payment status of WorkflowPaymentItem from "confirmed" to "redeemed"
	RedeemPayment(workflowId, ethAddr string) error

	//CheckIfWorkflowPaymentRequired returns whether a payment is required for the user for a workflow
	CheckIfWorkflowPaymentRequired(auth model.Auth, workflowId string) (bool, error)

	// CheckForWorkflowPayment checks whether a workflow payment is required.
	CheckForWorkflowPayment(auth model.Auth, workflowId string) error

	// Delete sets the status of a CheckForWorkflowPayment to "deleted"
	Delete(paymentId string) error

	// All returns a list of all WorkflowPaymentItem
	All() ([]*model.WorkflowPaymentItem, error)
}

PaymentService is an interface that provides payment functions

type SignatureRequestItemComplete

type SignatureRequestItemComplete struct {
	ID          string  `json:"id"`
	DocID       string  `json:"docID"`
	Hash        string  `json:"hash"`
	From        string  `json:"requestorName"`
	FromAddr    string  `json:"requestorAddr"`
	RequestedAt *string `json:"requestedAt,omitempty"`
	Rejected    bool    `json:"rejected"`
	RejectedAt  *string `json:"rejectedAt,omitempty"`
	Revoked     bool    `json:"revoked"`
	RevokedAt   *string `json:"revokedAt,omitempty"`
}

type SignatureRequestItemMinimal

type SignatureRequestItemMinimal struct {
	SignatoryName string  `json:"signatoryName"`
	SignatoryAddr string  `json:"signatoryAddr"`
	RequestedAt   *string `json:"requestedAt,omitempty"`
	Rejected      bool    `json:"rejected"`
	RejectedAt    *string `json:"rejectedAt,omitempty"`
	Revoked       bool    `json:"revoked"`
	RevokedAt     *string `json:"revokedAt,omitempty"`
}

type SignatureRequestsComplete

type SignatureRequestsComplete []SignatureRequestItemComplete

type SignatureRequestsMinimal

type SignatureRequestsMinimal []SignatureRequestItemMinimal

type SignatureService

type SignatureService interface {
	// GetById returns the signature request related to the provided documentId
	GetById(id, docId string) (SignatureRequestsMinimal, error)

	// GetForCurrentUser returns a list of the signature requests for the current user
	GetForCurrentUser(auth model.Auth) (SignatureRequestsComplete, error)

	// AddAndNotify adds a new signature request and if the signatory has provided an email address sends an email notification.
	AddAndNotify(auth model.Auth, translator www.Translator, id, docId, signatory, host, scheme string) error

	// RevokeAndNotify revokes an existing signature request and if the signatory has provided an email address sends an email notification.
	RevokeAndNotify(auth model.Auth, translator www.Translator, id, docId, signatory, host, scheme string) error

	// RejectAndNotify rejects an existing signature request and if the signatory has provided an email address sends an email notification.
	RejectAndNotify(auth model.Auth, translator www.Translator, id, docId, host string) error
}

SignatureService is an interface that provides document signature functions

func NewSignatureService

func NewSignatureService(fileService FileService, userService UserService, emailService EmailService) SignatureService

type TemplateDocumentService

type TemplateDocumentService interface {

	// Compile compiles a template with the documentService
	Compile(template eio.Template) (*http.Response, error)

	// SaveTemplate saves the template
	SaveTemplate(auth model.Auth, id, lang, contentType, fileName string, data []byte) error

	// GetTemplateVars returns the template variables
	GetTemplateVars(auth model.Auth, contains string, settings storage.Options) ([]string, error)

	// DeleteTemplate remove a template
	DeleteTemplate(auth model.Auth, id, lang string) error

	// DeleteTemplateFiles removes template files
	DeleteTemplateFiles(auth model.Auth, id string) error

	// DownloadExtensions downloads the template assistance extension for your writer.
	DownloadExtension(os string) (resp *http.Response, err error)

	// ReadFile reads a file and writes it into the writer
	ReadFile(path string, writer io.Writer) error

	// GetTemplate returns a template file
	GetTemplate(auth model.Auth, id, lang string) (*file.IO, error)

	// Get returns a template item
	Get(auth model.Auth, id string) (*model.TemplateItem, error)

	// Put sets a template item
	Put(auth model.Auth, item *model.TemplateItem) error

	// List returns a list of template items
	List(auth model.Auth, contains string, options storage.Options) ([]*model.TemplateItem, error)

	// Exists returns whether a file under the specified path exists
	Exists(path string) (bool, error)
}

TemplateDocumentService is an interface that provides template document functions

type UserDocumentService

type UserDocumentService interface {

	// List returns a list of UserDataItem that contain the string passed in contain.
	// settings are used to modify the result list
	List(auth model.Auth, contains string, settings storage.Options) ([]*model.UserDataItem, error)

	// Get returns the UserDataItem with the ids
	Get(auth model.Auth, id string) (*model.UserDataItem, error)

	// Put sets the UserDataItem
	Put(auth model.Auth, userDataItem *model.UserDataItem) error

	// GetDocFile returns file info for a pdf file that was generated from a workflow
	GetDocFile(auth model.Auth, id, dataPath, inlineOrAttachment string) (*FileHeaderResponse, string, error)

	// GetTemplateWithFormatFile returns file info for a docx file that was generated from a workflow
	GetTemplateWithFormatFile(auth model.Auth, id, dataPath, format, inlineOrAttachment string) (*FileHeaderResponse, io.ReadCloser, error)

	// GetByWorkflow returns the userDataItem with the provided workflow
	GetByWorkflow(auth model.Auth, wf *model.WorkflowItem, finished bool) (*model.UserDataItem, bool, error)
}

UserDocumentService is an interface that provides user document functions

type UserService

type UserService interface {

	// Put adds a user
	Put(auth model.Auth, user *model.User) error

	// GetUser returns the currently logged in user
	GetUser(auth model.Auth) (*model.User, error)

	// GetById returns the User with the provided id
	GetById(auth model.Auth, id string) (*model.User, error)

	// GetById returns the UserDataItem for the provided id
	GetUserDataById(auth model.Auth, id string) (*model.UserDataItem, error)

	// DeleteUser removes a user and all related data from the database
	DeleteUser(auth model.Auth) error

	// Deletes the UserData of the user with the provided id
	DeleteUserData(auth model.Auth, id string) error

	// GetByBCAddress returns the user associated with the provided blockchainAddress
	GetByBCAddress(blockchainAddress string) (*model.User, error)

	// GetByEmail returns the user associated with the provided email
	GetByEmail(email string) (*model.User, error)

	// PutPassword sets the password for a user
	PutPassword(userId, password string) error

	// GetProfilePhoto returns the profile photo for a user
	GetProfilePhoto(auth model.Auth, id string, writer io.Writer) error

	// PutProfilePhoto sets the profile photo for a user
	PutProfilePhoto(auth model.Auth, userId string, reader io.ReadCloser) error

	// List returns references to all the user object matching the supplied filter criteria
	List(sess model.Auth, contains string, settings storage.Options) ([]*model.User, error)
}

UserService is an interface that provides user functions

type WorkflowService

type WorkflowService interface {

	// List returns a list of all WorkflowItem that match "contains" and the provided storage.Options
	List(auth model.Auth, contains string, options storage.Options) ([]*model.WorkflowItem, error)

	// ListPublished returns a list of published WorkflowItem that match "contains" and the provided storage.Options
	ListPublished(auth model.Auth, contains string, options storage.Options) ([]*model.WorkflowItem, error)

	// ListIds returns a list of all workflow ids that match contains and the provided storage.Options
	ListIds(auth model.Auth, contains string, options storage.Options) ([]string, error)

	// GetAndPopulateOwner a workflow by the provided id and sets the OwnerEthAddress
	GetAndPopulateOwner(auth model.Auth, id string) (*model.WorkflowItem, error)

	// Get returns a workflow by the provided id
	Get(auth model.Auth, id string) (*model.WorkflowItem, error)

	// Publish publishes a workflowItem
	Publish(auth model.Auth, wfItem *model.WorkflowItem) map[string]interface{}

	// Put saves a WorkflowItem
	Put(auth model.Auth, wfItem *model.WorkflowItem) error

	// Delete removes a WorkflowItem
	Delete(auth model.Auth, id string) error

	// InstantiateExternalNode creates a new instance of an external node
	InstantiateExternalNode(auth model.Auth, nodeId, nodeName string) (*extNode.ExternalQuery, error)

	// CopyWorkflows copies the workflow and related forms and templates to the new user
	CopyWorkflows(rootUser, newUser *model.User)

	// 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)
}

WorkflowService is an interface that provides workflow functions

Jump to

Keyboard shortcuts

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