package handlers import ( "context" "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" "git.jamestombleson.com/jtom38/newsbot-portal/apiclient" "git.jamestombleson.com/jtom38/newsbot-portal/internal/config" ) const ( ErrParameterIdMissing = "The requested parameter ID was not found." ErrParameterMissing = "The requested parameter was not found found:" ErrUnableToParseId = "Unable to parse the requested ID" ErrRecordMissing = "The requested record was not found" ErrFailedToCreateRecord = "The record was not created due to a database problem" ErrFailedToUpdateRecord = "The requested record was not updated due to a database problem" ErrUserUnknown = "User is unknown" ErrYouDontOwnTheRecord = "The record requested does not belong to you" ResponseMessageSuccess = "Success" ) var ( ErrIdValueMissing string = "id value is missing" ErrValueNotUuid string = "a value given was expected to be a uuid but was not correct." ErrNoRecordFound string = "no record was found." ErrUnableToConvertToJson string = "Unable to convert to json" ) type Handler struct { Router *echo.Echo config config.Configs api apiclient.ApiClient } func NewServer(ctx context.Context, configs config.Configs, apiClient apiclient.ApiClient) *Handler { s := &Handler{ config: configs, api: apiClient, } router := echo.New() router.Pre(middleware.RemoveTrailingSlash()) router.Pre(middleware.Logger()) router.Pre(middleware.Recover()) router.Use(middleware.Static("/internal/static")) //router.Use(RefreshJwtMiddleware(apiClient)) router.GET("/", s.HomeIndex) router.GET("/about", s.HomeAbout) debug := router.Group("/debug") debug.GET("/cookies", s.DebugCookies) articles := router.Group("/articles") //articles.Use(ValidateJwtMiddleware(configs.JwtSecret)) articles.GET("", s.ArticlesList) sources := router.Group("/sources") //sources.Use(ValidateJwtMiddleware(configs.JwtSecret)) sources.GET("", s.ListAllSources) sources.GET("/add", s.AddSource) users := router.Group("/users") users.GET("/login", s.UserLogin) users.POST("/login", s.UserAfterLogin) users.GET("/signup", s.UserSignUp) users.POST("/signup", s.UserAfterSignUp) users.Use(ValidateJwtMiddleware(configs.JwtSecret)) users.GET("/logout", s.UsersLogout) users.GET("/profile", s.UserProfile) s.Router = router return s }