camper/pkg/form/input.go
jordi fita mas 59fe8dd131 Add Go functions for campsite_type PostgreSQL functions
I want these because when there are changes in the signature i then have
to find where it is used, and it is easier to do when the compiler tells
you.

For relations it is less necessary because GoLand knows how to validate
SQL strings for them, but it seems to not work with functions,
apparently due to the lack of the “FROM” keyword.

Besides, it tx.FunctionName(ctx, params...) is shorter than
tx.Exec("select functions_name($1, $2…)", params...).
2023-10-13 12:53:30 +02:00

53 lines
811 B
Go

/*
* SPDX-FileCopyrightText: 2023 jordi fita mas <jfita@peritasoft.com>
* SPDX-License-Identifier: AGPL-3.0-only
*/
package form
import (
"database/sql/driver"
"net/http"
"strconv"
"strings"
)
type Input struct {
Name string
Val string
Error error
}
func (input *Input) setError(err error) {
input.Error = err
}
func (input *Input) FillValue(r *http.Request) {
input.Val = strings.TrimSpace(r.FormValue(input.Name))
}
func (input *Input) Value() (driver.Value, error) {
return input.Val, nil
}
func (input *Input) Int() int {
i, err := strconv.Atoi(input.Val)
if err != nil {
panic(err)
}
return i
}
func (input *Input) L10nInput() *L10nInput {
return &L10nInput{
Input: Input{
Name: input.Name,
},
Source: input.Val,
}
}
type L10nInput struct {
Input
Source string
}