2019-08-14 12:53:40 -08:00
|
|
|
package handlers
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"geeks-accelerator/oss/saas-starter-kit/internal/platform/auth"
|
|
|
|
"geeks-accelerator/oss/saas-starter-kit/internal/platform/web"
|
|
|
|
"geeks-accelerator/oss/saas-starter-kit/internal/platform/web/webcontext"
|
|
|
|
"geeks-accelerator/oss/saas-starter-kit/internal/platform/web/weberror"
|
|
|
|
"geeks-accelerator/oss/saas-starter-kit/internal/project"
|
|
|
|
"net/http"
|
2019-08-17 11:03:48 +07:00
|
|
|
|
|
|
|
"github.com/pkg/errors"
|
2019-08-14 12:53:40 -08:00
|
|
|
)
|
|
|
|
|
|
|
|
// Example represents the Example API method handler set.
|
|
|
|
type Example struct {
|
2019-08-17 11:03:48 +07:00
|
|
|
Project ProjectRepository
|
2019-08-14 12:53:40 -08:00
|
|
|
|
|
|
|
// ADD OTHER STATE LIKE THE LOGGER AND CONFIG HERE.
|
|
|
|
}
|
|
|
|
|
|
|
|
// ErrorResponse returns example error messages.
|
|
|
|
func (h *Example) ErrorResponse(ctx context.Context, w http.ResponseWriter, r *http.Request, params map[string]string) error {
|
|
|
|
v, err := webcontext.ContextValues(ctx)
|
|
|
|
if err != nil {
|
|
|
|
return err
|
|
|
|
}
|
|
|
|
|
|
|
|
if qv := r.URL.Query().Get("test-validation-error"); qv != "" {
|
|
|
|
_, err := h.Project.Create(ctx, auth.Claims{}, project.ProjectCreateRequest{}, v.Now)
|
|
|
|
return web.RespondJsonError(ctx, w, err)
|
|
|
|
}
|
|
|
|
|
|
|
|
if qv := r.URL.Query().Get("test-web-error"); qv != "" {
|
|
|
|
terr := errors.New("Some random error")
|
|
|
|
terr = errors.WithMessage(terr, "Actual error message")
|
|
|
|
rerr := weberror.NewError(ctx, terr, http.StatusBadRequest).(*weberror.Error)
|
|
|
|
rerr.Message = "Test Web Error Message"
|
|
|
|
return web.RespondJsonError(ctx, w, rerr)
|
|
|
|
}
|
|
|
|
|
|
|
|
if qv := r.URL.Query().Get("test-error"); qv != "" {
|
|
|
|
terr := errors.New("Test error")
|
|
|
|
terr = errors.WithMessage(terr, "Error message")
|
|
|
|
return web.RespondJsonError(ctx, w, terr)
|
|
|
|
}
|
|
|
|
|
|
|
|
return nil
|
|
|
|
}
|