Documentation
¶
Overview ¶
Package form provides form-related domain services and business logic. It includes form creation, validation, submission handling, and related operations.
Package form provides form submission handling and related domain logic. It includes submission validation, processing, and data management.
Index ¶
Constants ¶
View Source
const ( // DefaultTimeout is the default timeout for form operations DefaultTimeout = 30 * time.Second )
Variables ¶
View Source
var ErrFormSchemaNotFound = errors.New("form schema not found")
ErrFormSchemaNotFound is returned when a form schema cannot be found
Functions ¶
This section is empty.
Types ¶
type Repository ¶ added in v0.1.5
type Repository interface {
// Form operations
CreateForm(ctx context.Context, form *model.Form) error
GetFormByID(ctx context.Context, id string) (*model.Form, error)
ListForms(ctx context.Context, userID string) ([]*model.Form, error)
UpdateForm(ctx context.Context, form *model.Form) error
DeleteForm(ctx context.Context, id string) error
GetFormsByStatus(ctx context.Context, status string) ([]*model.Form, error)
// Form submission operations
CreateSubmission(ctx context.Context, submission *model.FormSubmission) error
GetSubmissionByID(ctx context.Context, id string) (*model.FormSubmission, error)
ListSubmissions(ctx context.Context, formID string) ([]*model.FormSubmission, error)
UpdateSubmission(ctx context.Context, submission *model.FormSubmission) error
DeleteSubmission(ctx context.Context, id string) error
GetByFormID(ctx context.Context, formID string) ([]*model.FormSubmission, error)
GetByFormIDPaginated(
ctx context.Context,
formID string,
params common.PaginationParams,
) (*common.PaginationResult, error)
GetByFormAndUser(ctx context.Context, formID, userID string) (*model.FormSubmission, error)
GetSubmissionsByStatus(ctx context.Context, status model.SubmissionStatus) ([]*model.FormSubmission, error)
}
Repository defines the interface for form data access
type Service ¶
type Service interface {
CreateForm(ctx context.Context, form *model.Form) error
UpdateForm(ctx context.Context, form *model.Form) error
DeleteForm(ctx context.Context, formID string) error
GetForm(ctx context.Context, formID string) (*model.Form, error)
ListForms(ctx context.Context, userID string) ([]*model.Form, error)
SubmitForm(ctx context.Context, submission *model.FormSubmission) error
GetFormSubmission(ctx context.Context, submissionID string) (*model.FormSubmission, error)
ListFormSubmissions(ctx context.Context, formID string) ([]*model.FormSubmission, error)
UpdateFormState(ctx context.Context, formID, state string) error
TrackFormAnalytics(ctx context.Context, formID, eventType string) error
}
Service defines the interface for form-related business logic
func NewService ¶
NewService creates a new form service
type SubmissionRepository ¶ added in v0.1.5
type SubmissionRepository interface {
repository.Repository[*model.FormSubmission]
// GetByFormID retrieves all submissions for a form
GetByFormID(ctx context.Context, formID string) ([]*model.FormSubmission, error)
// GetByFormIDPaginated retrieves paginated submissions for a form
GetByFormIDPaginated(
ctx context.Context,
formID string,
params common.PaginationParams,
) (*common.PaginationResult, error)
// GetByFormAndUser retrieves a submission by form ID and user ID
GetByFormAndUser(
ctx context.Context,
formID string,
userID string,
) (*model.FormSubmission, error)
// GetSubmissionsByStatus retrieves submissions by status
GetSubmissionsByStatus(
ctx context.Context,
status model.SubmissionStatus,
params common.PaginationParams,
) (*common.PaginationResult, error)
// CreateSubmission creates a new form submission
CreateSubmission(ctx context.Context, submission *model.FormSubmission) error
// UpdateSubmission updates an existing form submission
UpdateSubmission(ctx context.Context, submission *model.FormSubmission) error
// DeleteSubmission deletes a form submission
DeleteSubmission(ctx context.Context, id string) error
}
SubmissionRepository defines the interface for form submission storage
Directories
¶
| Path | Synopsis |
|---|---|
|
Package event defines domain events and event interfaces for form-related actions.
|
Package event defines domain events and event interfaces for form-related actions. |
|
Package form provides form-related domain events and event handling functionality for managing form lifecycle and state changes.
|
Package form provides form-related domain events and event handling functionality for managing form lifecycle and state changes. |
|
Package model contains domain models and error definitions for forms.
|
Package model contains domain models and error definitions for forms. |
Click to show internal directories.
Click to hide internal directories.