Documentation ¶
Index ¶
- Constants
- type Consumption
- type ConsumptionRepository
- type ConsumptionUsecase
- type ErrorResponse
- type JwtCustomClaims
- type JwtCustomRefreshClaims
- type LoginRequest
- type LoginResponse
- type LoginUsecase
- type Meter
- type MeterRepository
- type MeterUsecase
- type Pagination
- type RefreshTokenRequest
- type RefreshTokenResponse
- type RefreshTokenUsecase
- type Response
- type SignupRequest
- type SignupResponse
- type SignupUsecase
- type SuccessResponse
- type User
- type UserRepository
- type UserUseCase
Constants ¶
View Source
const (
ConsumptionTable = "consumptions"
)
table name
View Source
const (
MeterTable = "meters"
)
View Source
const (
UserTable = "users"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Consumption ¶
type Consumption struct { ID uuid.UUID `json:"id"` MeterID int `json:"meter_id"` Active float64 `json:"active"` ReactiveInductive float64 `json:"reactive_inductive"` ReactiveCapacitive float64 `json:"reactive_capacitive"` Exported float64 `json:"exported"` Period string `json:"period"` Timestamp time.Time `json:"timestamp"` }
type ConsumptionRepository ¶
type ConsumptionUsecase ¶
type ConsumptionUsecase interface { GetConsumptionByID(id uuid.UUID) (*Consumption, error) GetConsumptionsByPeriod(period_type, start, end string, meterIDs []int, pagination *Pagination) (*Response, error) }
type ErrorResponse ¶
type ErrorResponse struct {
Message string `json:"message"`
}
type JwtCustomClaims ¶
type JwtCustomClaims struct { Email string `json:"email"` ID uuid.UUID `json:"id"` jwt.StandardClaims }
JwtCustomClaims representa los claims personalizados que se incluyen en el JWT de la plataforma .
type JwtCustomRefreshClaims ¶
JwtCustomRefreshClaims representa los claims personalizados que se incluyen en el JWT de actualización en la plataforma .
type LoginRequest ¶
type LoginResponse ¶
type LoginUsecase ¶
type MeterRepository ¶
type MeterUsecase ¶
type Pagination ¶
type RefreshTokenRequest ¶
type RefreshTokenRequest struct {
RefreshToken string `form:"refreshToken" binding:"required"`
}
type RefreshTokenResponse ¶
type RefreshTokenUsecase ¶
type RefreshTokenUsecase interface { GetUserByEmail(c context.Context, id string) (*User, error) CreateAccessToken(user *User, secret string, expiry int) (accessToken string, err error) CreateRefreshToken(user *User, secret string, expiry int) (refreshToken string, err error) ExtractIDFromToken(requestToken string, secret string) (string, error) }
type SignupRequest ¶
type SignupResponse ¶
type SignupUsecase ¶
type SignupUsecase interface { Create(c context.Context, user *User) (*User, error) GetUserByEmail(c context.Context, email string) (*User, error) CreateAccessToken(user *User, secret string, expiry int) (accessToken string, err error) CreateRefreshToken(user *User, secret string, expiry int) (refreshToken string, err error) }
type SuccessResponse ¶
type SuccessResponse struct {
Message string `json:"message"`
}
type User ¶
type User struct { ID uuid.UUID `json:"id"` Email string `json:"email"` Password string `json:"password,omitempty"` }
func (*User) ComparePassword ¶
ComparePassword compara la contraseña proporcionada con la contraseña almacenada del usuario.
func (*User) SetPassword ¶
SetPassword encripta la contraseña y la asigna al usuario.
type UserRepository ¶
type UserRepository interface { Create(ctx context.Context, user *User) (*User, error) FindByID(ctx context.Context, id uuid.UUID) (*User, error) FindByEmail(ctx context.Context, email string) (*User, error) Update(ctx context.Context, user *User) (*User, error) }
UserRepository define los métodos necesarios para interactuar con la base de datos de registros de usuarios.
type UserUseCase ¶
type UserUseCase interface { GetByID(ctx context.Context, id uuid.UUID) (*User, error) GetByEmail(ctx context.Context, email string) (*User, error) Create(ctx context.Context, user *User) error Update(ctx context.Context, user *User) error Delete(ctx context.Context, id uuid.UUID) error }
UserUseCase define los métodos necesarios para interactuar con la lógica de negocio de registros de usuarios.
Source Files ¶
Click to show internal directories.
Click to hide internal directories.