mirror of
https://github.com/snowykami/neo-blog.git
synced 2025-09-04 00:06:22 +00:00
93 lines
2.4 KiB
Go
93 lines
2.4 KiB
Go
package v1
|
|
|
|
import (
|
|
"context"
|
|
"github.com/cloudwego/hertz/pkg/app"
|
|
"github.com/snowykami/neo-blog/internal/dto"
|
|
"github.com/snowykami/neo-blog/internal/service"
|
|
"github.com/snowykami/neo-blog/pkg/errs"
|
|
"github.com/snowykami/neo-blog/pkg/resps"
|
|
)
|
|
|
|
type AdminController struct {
|
|
service *service.AdminService
|
|
}
|
|
|
|
func NewAdminController() *AdminController {
|
|
return &AdminController{
|
|
service: service.NewAdminService(),
|
|
}
|
|
}
|
|
|
|
func (cc *AdminController) CreateOidc(ctx context.Context, c *app.RequestContext) {
|
|
var adminCreateOidcReq dto.AdminOidcConfigDto
|
|
if err := c.BindAndValidate(&adminCreateOidcReq); err != nil {
|
|
c.JSON(400, map[string]string{"error": "Invalid parameters"})
|
|
return
|
|
}
|
|
err := cc.service.CreateOidcConfig(&adminCreateOidcReq)
|
|
if err != nil {
|
|
serviceErr := errs.AsServiceError(err)
|
|
resps.Custom(c, serviceErr.Code, serviceErr.Message, nil)
|
|
return
|
|
}
|
|
resps.Ok(c, resps.Success, nil)
|
|
}
|
|
|
|
func (cc *AdminController) DeleteOidc(ctx context.Context, c *app.RequestContext) {
|
|
id := c.Param("id")
|
|
if id == "" {
|
|
resps.BadRequest(c, resps.ErrParamInvalid)
|
|
return
|
|
}
|
|
|
|
err := cc.service.DeleteOidcConfig(id)
|
|
if err != nil {
|
|
serviceErr := errs.AsServiceError(err)
|
|
resps.Custom(c, serviceErr.Code, serviceErr.Message, nil)
|
|
return
|
|
}
|
|
resps.Ok(c, resps.Success, nil)
|
|
}
|
|
|
|
func (cc *AdminController) GetOidcByID(ctx context.Context, c *app.RequestContext) {
|
|
id := c.Param("id")
|
|
if id == "" {
|
|
resps.BadRequest(c, resps.ErrParamInvalid)
|
|
return
|
|
}
|
|
|
|
config, err := cc.service.GetOidcConfigByID(id)
|
|
if err != nil {
|
|
serviceErr := errs.AsServiceError(err)
|
|
resps.Custom(c, serviceErr.Code, serviceErr.Message, nil)
|
|
return
|
|
}
|
|
resps.Ok(c, resps.Success, config)
|
|
}
|
|
|
|
func (cc *AdminController) ListOidc(ctx context.Context, c *app.RequestContext) {
|
|
configs, err := cc.service.ListOidcConfigs(false)
|
|
if err != nil {
|
|
serviceErr := errs.AsServiceError(err)
|
|
resps.Custom(c, serviceErr.Code, serviceErr.Message, nil)
|
|
return
|
|
}
|
|
resps.Ok(c, resps.Success, configs)
|
|
}
|
|
|
|
func (cc *AdminController) UpdateOidc(ctx context.Context, c *app.RequestContext) {
|
|
var adminUpdateOidcReq dto.AdminOidcConfigDto
|
|
if err := c.BindAndValidate(&adminUpdateOidcReq); err != nil {
|
|
c.JSON(400, map[string]string{"error": "Invalid parameters"})
|
|
return
|
|
}
|
|
err := cc.service.UpdateOidcConfig(&adminUpdateOidcReq)
|
|
if err != nil {
|
|
serviceErr := errs.AsServiceError(err)
|
|
resps.Custom(c, serviceErr.Code, serviceErr.Message, nil)
|
|
return
|
|
}
|
|
resps.Ok(c, resps.Success, nil)
|
|
}
|