Versions in this module Expand all Collapse all v0 v0.0.2 Mar 1, 2024 Changes in this version + const MIN_ENTROPY + var DefaultLoggingOpts = LoggingOpts + var ErrBadRequest = NewErrHttp(http.StatusBadRequest, "bad request") + var ErrConflict = NewErrHttp(http.StatusConflict, "conflict") + var ErrForbidden = NewErrHttp(http.StatusForbidden, "forbidden") + var ErrInternal = NewErrHttp(http.StatusInternalServerError, "internal server error") + var ErrNotFound = NewErrHttp(http.StatusNotFound, "not found") + var ErrUnauthorized = NewErrHttp(http.StatusUnauthorized, "unauthorized") + var TransactionCtxKey ctxKey = 0 + var Validator *validator.Validate + func DefaultLogRequest(ctx context.Context, slogger *slog.Logger, r *http.Request, start time.Time) + func DefaultLogResponse(ctx context.Context, slogger *slog.Logger, r *http.Request, ...) + func GetContextValue[T any](ctx context.Context, key any) *T + func GetQueryParam(r *http.Request, key string) (bool, string) + func GetQueryParamDefault(r *http.Request, key string, defaultValue string) string + func GetQueryParamInt(r *http.Request, key string) (bool, int, error) + func GetQueryParamIntDefault(r *http.Request, key string, defaultValue int) (int, error) + func GetQueryParamList(r *http.Request, key string) (bool, []string) + func GetQueryParamListDefault(r *http.Request, key string, defaultValue []string) []string + func LoggingMiddleware(slogger *slog.Logger, opts ...LoggingOpts) func(http.Handler) http.Handler + func ReadJson[T any](r *http.Request, data *T) error + func SecurePasswordValidator(fl validator.FieldLevel) bool + func TransactionalMiddleware(getTx func(ctx context.Context) (driver.Tx, error)) func(http.Handler) http.Handler + func WriteAccepted(w http.ResponseWriter) error + func WriteErr(w http.ResponseWriter, err error) error + func WriteErrJson(w http.ResponseWriter, status int, message string) error + func WriteErrValidationJson(w http.ResponseWriter, validationErr IErrHttpValidation) error + func WriteOkOrErr[T any](w http.ResponseWriter, data T, err error) + func WriteOk[T any](w http.ResponseWriter, data T) error + type ClockService struct + func (c *ClockService) Now() time.Time + type ClockServiceMock struct + func (c *ClockServiceMock) Now() time.Time + type ErrHttp struct + func NewErrHttp(statusCode int, error string) ErrHttp + func (e ErrHttp) Error() string + func (e ErrHttp) StatusCode() int + type ErrHttpValidation struct + func NewErrHttpValidation(errors map[string]string) ErrHttpValidation + func (e ErrHttpValidation) ValidationErrors() map[string]string + type IClockService interface + Now func() time.Time + type IErrHttp interface + Error func() string + StatusCode func() int + type IErrHttpValidation interface + Error func() string + StatusCode func() int + ValidationErrors func() map[string]string + func Validate(s any) IErrHttpValidation + type LoggingOpts struct + LogRequest bool + LogResponse bool + OnRequest func(ctx context.Context, slogger *slog.Logger, r *http.Request, start time.Time) + OnResponse func(ctx context.Context, slogger *slog.Logger, r *http.Request, ...) + type WatchedResponseWriter struct + func NewWatchedResponseWriter(response http.ResponseWriter) *WatchedResponseWriter + func (w *WatchedResponseWriter) Apply() + func (w *WatchedResponseWriter) BytesWritten() int + func (w *WatchedResponseWriter) Header() http.Header + func (w *WatchedResponseWriter) Reset() + func (w *WatchedResponseWriter) StatusCode() int + func (w *WatchedResponseWriter) Write(b []byte) (int, error) + func (w *WatchedResponseWriter) WriteHeader(statusCode int) v0.0.1 Feb 29, 2024