updated export/import form

This commit is contained in:
Gani Georgiev
2022-08-07 11:14:49 +03:00
parent 956263d1fc
commit b0ca9b2f1b
7 changed files with 66 additions and 113 deletions
+31 -4
View File
@@ -6,20 +6,47 @@ import (
validation "github.com/go-ozzo/ozzo-validation/v4"
"github.com/go-ozzo/ozzo-validation/v4/is"
"github.com/pocketbase/pocketbase/core"
"github.com/pocketbase/pocketbase/daos"
"github.com/pocketbase/pocketbase/models"
)
// AdminLogin defines an admin email/pass login form.
type AdminLogin struct {
app core.App
config AdminLoginConfig
Email string `form:"email" json:"email"`
Password string `form:"password" json:"password"`
}
// NewAdminLogin creates new admin login form for the provided app.
// AdminLoginConfig is the [AdminLogin] factory initializer config.
//
// NB! Dao is a required struct member.
type AdminLoginConfig struct {
Dao *daos.Dao
}
// NewAdminLogin creates a new [AdminLogin] form with initializer
// config created from the provided [core.App] instance.
//
// This factory method is used primarily for convenience (and backward compatibility).
// If you want to submit the form as part of another transaction, use
// [NewCollectionUpsertWithConfig] with Dao configured to your txDao.
func NewAdminLogin(app core.App) *AdminLogin {
return &AdminLogin{app: app}
return NewAdminLoginWithConfig(AdminLoginConfig{
Dao: app.Dao(),
})
}
// NewAdminLoginWithConfig creates a new [AdminLogin] form
// with the provided config or panics on invalid configuration.
func NewAdminLoginWithConfig(config AdminLoginConfig) *AdminLogin {
form := &AdminLogin{config: config}
if form.config.Dao == nil {
panic("Invalid initializer config.")
}
return form
}
// Validate makes the form validatable by implementing [validation.Validatable] interface.
@@ -37,7 +64,7 @@ func (form *AdminLogin) Submit() (*models.Admin, error) {
return nil, err
}
admin, err := form.app.Dao().FindAdminByEmail(form.Email)
admin, err := form.config.Dao.FindAdminByEmail(form.Email)
if err != nil {
return nil, err
}