userapp

package
v0.0.0-...-c624722 Latest Latest
Warning

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

Go to latest
Published: May 3, 2024 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package userapp maintains the app layer api for the user domain.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type App

type App struct {
	// contains filtered or unexported fields
}

App manages the set of app layer api functions for the user domain.

func NewApp

func NewApp(userBus *userbus.Business) *App

NewApp constructs a user app API for use.

func NewAppWithAuth

func NewAppWithAuth(userBus *userbus.Business, ath *auth.Auth) *App

NewAppWithAuth constructs a user app API for use with auth support.

func (*App) Create

func (a *App) Create(ctx context.Context, app NewUser) (User, error)

Create adds a new user to the system.

func (*App) Delete

func (a *App) Delete(ctx context.Context, userID string) error

Delete removes a user from the system.

func (*App) Query

func (a *App) Query(ctx context.Context, qp QueryParams) (page.Document[User], error)

Query returns a list of users with paging.

func (*App) QueryByID

func (a *App) QueryByID(ctx context.Context, userID string) (User, error)

QueryByID returns a user by its ID.

func (*App) Update

func (a *App) Update(ctx context.Context, userID string, app UpdateUser) (User, error)

Update updates an existing user.

func (*App) UpdateRole

func (a *App) UpdateRole(ctx context.Context, userID string, app UpdateUserRole) (User, error)

UpdateRole updates an existing user's role.

type NewUser

type NewUser struct {
	Name            string   `json:"name" validate:"required"`
	Email           string   `json:"email" validate:"required,email"`
	Roles           []string `json:"roles" validate:"required"`
	Department      string   `json:"department"`
	Password        string   `json:"password" validate:"required"`
	PasswordConfirm string   `json:"passwordConfirm" validate:"eqfield=Password"`
}

NewUser defines the data needed to add a new user.

func (NewUser) Validate

func (app NewUser) Validate() error

Validate checks the data in the model is considered clean.

type QueryParams

type QueryParams struct {
	Page             string `query:"page"`
	Rows             string `query:"rows"`
	OrderBy          string `query:"orderBy"`
	ID               string `query:"user_id"`
	Name             string `query:"name"`
	Email            string `query:"email"`
	StartCreatedDate string `query:"start_created_date"`
	EndCreatedDate   string `query:"end_created_date"`
}

QueryParams represents the set of possible query strings.

type UpdateUser

type UpdateUser struct {
	Name            *string `json:"name"`
	Email           *string `json:"email" validate:"omitempty,email"`
	Department      *string `json:"department"`
	Password        *string `json:"password"`
	PasswordConfirm *string `json:"passwordConfirm" validate:"omitempty,eqfield=Password"`
	Enabled         *bool   `json:"enabled"`
}

UpdateUser defines the data needed to update a user.

func (UpdateUser) Validate

func (app UpdateUser) Validate() error

Validate checks the data in the model is considered clean.

type UpdateUserRole

type UpdateUserRole struct {
	Roles []string `json:"roles"`
}

UpdateUserRole defines the data needed to update a user role.

type User

type User struct {
	ID           string   `json:"id"`
	Name         string   `json:"name"`
	Email        string   `json:"email"`
	Roles        []string `json:"roles"`
	PasswordHash []byte   `json:"-"`
	Department   string   `json:"department"`
	Enabled      bool     `json:"enabled"`
	DateCreated  string   `json:"dateCreated"`
	DateUpdated  string   `json:"dateUpdated"`
}

User represents information about an individual user.

Jump to

Keyboard shortcuts

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