hongbo-miao/hongbomiao.com

View on GitHub
api-go/internal/config_loader/controllers/config.go

Summary

Maintainability
A
0 mins
Test Coverage
package controllers

import (
    "github.com/gin-gonic/gin"
    "github.com/hongbo-miao/hongbomiao.com/api-go/internal/config_loader/utils"
    "github.com/jackc/pgx/v5/pgxpool"
    "github.com/rs/zerolog/log"
    "net/http"
)

func Config(pg *pgxpool.Pool) gin.HandlerFunc {
    fn := func(c *gin.Context) {
        token := c.Request.URL.Query().Get("token")
        opalClientID, err := utils.VerifyJWTTokenAndExtractOPALClientID(token)
        if err != nil {
            log.Error().Err(err).Msg("VerifyJWTTokenAndExtractMyID")
        }

        opalClientConfig, err := utils.FetchOPALClientConfig(pg, opalClientID)
        if err != nil {
            log.Error().Err(err).Msg("FetchOPALClientConfig")
            c.JSON(http.StatusInternalServerError, gin.H{
                "error": "something bad happened",
            })
            return
        }

        c.JSON(http.StatusOK, opalClientConfig)
    }
    return fn
}