| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package forms
- import (
- "github.com/porter-dev/porter/internal/models"
- "github.com/porter-dev/porter/internal/repository"
- "gorm.io/gorm"
- )
- // WriteProjectForm is a generic form for write operations to the Project model
- type WriteProjectForm interface {
- ToProject(repo repository.ProjectRepository) (*models.Project, error)
- }
- // CreateProjectForm represents the accepted values for creating a project
- type CreateProjectForm struct {
- WriteProjectForm
- Name string `json:"name" form:"required"`
- }
- // ToProject converts the project to a gorm project model
- func (cpf *CreateProjectForm) ToProject(_ repository.ProjectRepository) (*models.Project, error) {
- return &models.Project{
- Name: cpf.Name,
- }, nil
- }
- // CreateProjectRoleForm represents the accepted values for creating a project
- // role
- type CreateProjectRoleForm struct {
- WriteProjectForm
- ID uint `json:"project_id" form:"required"`
- Roles []models.Role `json:"roles"`
- }
- // ToProject converts the form to a gorm project model
- func (cprf *CreateProjectRoleForm) ToProject(_ repository.ProjectRepository) (*models.Project, error) {
- return &models.Project{
- Model: gorm.Model{
- ID: cprf.ID,
- },
- Roles: cprf.Roles,
- }, nil
- }
|