go_model

package module
v1.1.10 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 14, 2023 License: MIT Imports: 4 Imported by: 9

README

Estructuras que utilizo con frecuencia en proyectos escritos en Go

ejemplo de uso en una tabla

func Patient() *go_model.Table {
	run_Global := input.RunGlobal{
		PlaceHolder: "ch ej: 13173472-7 dni ej: 12345678 ",
	}
	textOnly := input.TextOnly{}
	phoneNumber := input.Number{Pattern: `^[0-9]{7,11}$`}

	dateAge := input.DateAge{}

	t := model.Table{
		Noun:           "patient",
		TextFieldNames: []string{"patient_name"},
		Fields: []model.Field{
			
            {Name: "id_patient", DataType: "TEXT", Legend: "Id", Input: pkHiddenNoRequiredInView, NotRenderHtml: true},
			
            {Name: "patient_run", DataType: "TEXT", Unique: true, Legend: "Run o Dni", Input: run_Global},
			
            {Name: "patient_name", DataType: "TEXT", Legend: "Nombre y Apellido(s)", Input: textOnly},
			
            {Name: "patient_birthday", DataType: "TEXT", Legend: "Edad", Input: dateAge,},
			
            {Name: "patient_contact", DataType: "TEXT", Legend: "No Teléfono", Input: phoneNumber, SkipCompletionAllowed: true,Render: true},
			
            {Name: "patient_gender", DataType: "TEXT", Legend: "Genero", Input: radioGenero, SkipValidation: true},
			
            {Name: "patient_address", DataType: "TEXT", Legend: "Dirección", Input: textPointArea},
		},
	}

	return &t
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Applicant

type Applicant struct {
	Token          string // token de sesión solicitante
	Ip             string
	Name           string
	Area           string
	AccessLevel    uint8
	Response       chan Response
	LastConnection time.Time
}

Solicitante y por que no usuario, por que la palabra usuario la uso mas frecuentemente en la lógica propia según el negocio

type DataIN added in v0.0.5

type DataIN struct {
	Table string
	Data  map[string]interface{}
}

func (*DataIN) NewDataReceived added in v0.0.5

func (d *DataIN) NewDataReceived() (outKeys map[string]string, outItems []*Object, ok bool)

type Field

type Field struct {
	// si el campo comienza com id_ se considera como único y perteneciente a una tabla específica ej: id_user su tabla es user
	// otros ej: id_usuario, apellido, address, city etc
	Name                  string
	Unique                bool   //campo único en db
	Inalterable           bool   //la data en el campo sera inalterable después de la creación (¡no se puede modificar!)
	Legend                string //como se mostrara al usuario el campo en el encabezado ej: "name" por "Nombre Usuario"
	Input                 input
	SkipValidation        bool //sin validar
	SkipCompletionAllowed bool //si el campo es requerido obligatoriamente o no

	NotRenderHtml bool // si no se necesita en formulario html

}

type Object

type Object struct {
	Table string
	Data  map[string]string
}

func ArrayMapsToObjects added in v0.0.4

func ArrayMapsToObjects(table_name string, table_data []map[string]string) (out []Object)

func NewDataReceived added in v0.0.5

func NewDataReceived(tableName string) *Object

func (*Object) AddID added in v0.0.4

func (o *Object) AddID(id string)

func (*Object) AddMissingData added in v0.0.4

func (o *Object) AddMissingData(missing_data map[string]string)

func (*Object) Clone added in v0.0.4

func (o *Object) Clone() Object

func (*Object) DataObjectValuesToOneString added in v0.0.4

func (o *Object) DataObjectValuesToOneString() (data string)

func (*Object) FieldValue added in v0.0.2

func (o *Object) FieldValue() map[string]string

func (*Object) FilterFields added in v0.0.1

func (o *Object) FilterFields(namesRequired ...string) *Object

func (*Object) GetDifferences added in v0.0.4

func (o *Object) GetDifferences(originalIN map[string]string) (different_keys []string)

func (*Object) GetID added in v0.0.4

func (o *Object) GetID() (idOut string)

retorna id ej 1233455

func (*Object) PrimaryKeyName added in v0.0.1

func (o *Object) PrimaryKeyName() string

retorna nombre del campo pk

func (*Object) SeparateDataObject added in v0.0.4

func (o *Object) SeparateDataObject(table *Table) *Object

func (*Object) TableName added in v0.0.7

func (o *Object) TableName() string

func (*Object) Values added in v0.0.7

func (o *Object) Values() (values []string)

type Permissions

type Permissions struct {
	Create bool
	Update bool
	Delete bool
}

type Request

type Request struct {
	*Applicant        //usuario que ejecuta la acción
	Objects           []*Object
	SkipMeINBroadcast bool // al difundir respuesta saltar al solicitante
	Response
}

type Response

type Response struct {
	Type      string              //tipo solicitud respuesta, create,read, error,update delete
	ForObject string              //objeto para donde va la solicitud
	ForModule string              //para el modulo
	Message   string              //mensaje para el usuario de la aplicación
	Data      []map[string]string //data entrada y respuesta json
}

type Table

type Table struct {
	Name           string   //nombre de la tabla
	TextFieldNames []string //nombre de campos mas representativos de la tabla ej: nombre, apellido
	Fields         []Field  //campos de la tabla
	//operaciones permitidas según nivel de acceso ej: 0,1,2,3,4 + Create bool, Update bool, Delete bool
	OperationsAllowed map[uint8]Permissions
}

func (*Table) Columns added in v0.0.6

func (t *Table) Columns() (columns []string)

func (*Table) FilterField added in v0.0.3

func (t *Table) FilterField(nameRequired string) (fielsOut Field)

func (*Table) FilterFields added in v0.0.6

func (t *Table) FilterFields(namesRequired ...string) (fielsOut []Field)

func (*Table) FilterRemoveFields added in v0.0.6

func (t *Table) FilterRemoveFields(namesToRemove ...string) (fielsOut []Field)

func (*Table) GetFieldByName added in v0.0.6

func (t *Table) GetFieldByName(nameRq string) (fielOut Field)

func (*Table) GetID added in v0.0.6

func (t *Table) GetID(data_search map[string]string) string

func (*Table) GetRepresentativeTextField added in v0.0.6

func (t *Table) GetRepresentativeTextField(data_element map[string]string) (values string)

func (*Table) MainName added in v0.0.6

func (t *Table) MainName() string

func (*Table) PrimaryKeyName added in v0.0.6

func (t *Table) PrimaryKeyName() string

func (*Table) RenderFields added in v0.0.6

func (t *Table) RenderFields() (fielsOut []Field)

func (*Table) RequiredFields added in v0.0.6

func (t *Table) RequiredFields() (fielsOut []Field)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL