Skip to content

creamsensation/form

Repository files navigation

Creamsensation - Form

Example code

package example

import . "github.com/creamsensation/form"

type ExampleForm struct {
  Form
  Name  Field[string] 
  Age   Field[int]
}

func createExampleForm() (ExampleForm, error) {
  form := New(
    Add("name").With(Text(), Validate.Required()),
    Add("age").With(Number[int](), Validate.Required()),
  )
  return Build[ExampleForm](form)
}

New()

Creates new form builder, which accept field builders

New(fields...)

Builder - Action()

Set form action

formBuilder.Action(action)

Builder - Add()

Same as Add() function, only alternative

formBuilder.Add(name)

Builder - Get()

Get form field

formBuilder.Get(name)

Builder - Limit()

Data limit (MBs)

formBuilder.Limit(limit)

Builder - Method()

Set form method

formBuilder.Method(method)

Builder - Name()

Set form name

formBuilder.Name(name)

Builder - Request()

Provide request to form, it uses native *http.Request

formBuilder.Request(request)

Add()

Creates new field builder

Add(config, validators...)

Validate

Validate - Required()

Use when form field value is required, it works with string, int, floats, bool and Multipart

Validate.Required()
--
Add("example").With(Text(), Validate.Required())

Validate - Min()

Use when form field value must have minimal value or minimal length, it works with string, int, floats

Validate.Min(1)
--
Add("text").With(Text(), Validate.Min(1))
Add("amount").With(Number[float64](), Validate.Min(1))

Validate - Max()

Use when form field value must have maximum value or maximum length, it works with string, int, floats

Validate.Max(10)
--
Add("text").With(Text(), Validate.Max(10))
Add("amount").With(Number[float64](), Validate.Max(10))

Validate - Email()

Use when form field value must have email pattern, it works with string

Validate.Email()
--
Add("email").With(Email("test@test.cz"), Validate.Email())

Build()

Creates form from form builder, you have to provide result type

Build[ExampleForm](formBuilder)

ToStruct()

Convert form struct to any data model struct, you have to provide source and result type

ToStruct[ExampleForm, Model](&form)