You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

500 lines
12 KiB

// Code generated by goctl. DO NOT EDIT.
// goctl 1.9.2
package handler
import (
"net/http"
ai "github.com/youruser/base/internal/handler/ai"
auth "github.com/youruser/base/internal/handler/auth"
dashboard "github.com/youruser/base/internal/handler/dashboard"
file "github.com/youruser/base/internal/handler/file"
menu "github.com/youruser/base/internal/handler/menu"
organization "github.com/youruser/base/internal/handler/organization"
profile "github.com/youruser/base/internal/handler/profile"
role "github.com/youruser/base/internal/handler/role"
user "github.com/youruser/base/internal/handler/user"
"github.com/youruser/base/internal/svc"
"github.com/zeromicro/go-zero/rest"
)
func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) {
server.AddRoutes(
rest.WithMiddlewares(
[]rest.Middleware{serverCtx.Cors, serverCtx.Log, serverCtx.Auth},
[]rest.Route{
{
// AI 对话补全
Method: http.MethodPost,
Path: "/ai/chat/completions",
Handler: ai.AiChatCompletionsHandler(serverCtx),
},
{
// 创建对话
Method: http.MethodPost,
Path: "/ai/conversation",
Handler: ai.AiConversationCreateHandler(serverCtx),
},
{
// 获取对话详情
Method: http.MethodGet,
Path: "/ai/conversation/:id",
Handler: ai.AiConversationGetHandler(serverCtx),
},
{
// 更新对话
Method: http.MethodPut,
Path: "/ai/conversation/:id",
Handler: ai.AiConversationUpdateHandler(serverCtx),
},
{
// 删除对话
Method: http.MethodDelete,
Path: "/ai/conversation/:id",
Handler: ai.AiConversationDeleteHandler(serverCtx),
},
{
// 获取对话列表
Method: http.MethodGet,
Path: "/ai/conversations",
Handler: ai.AiConversationListHandler(serverCtx),
},
{
// 添加API Key
Method: http.MethodPost,
Path: "/ai/key",
Handler: ai.AiApiKeyCreateHandler(serverCtx),
},
{
// 更新API Key
Method: http.MethodPut,
Path: "/ai/key/:id",
Handler: ai.AiApiKeyUpdateHandler(serverCtx),
},
{
// 删除API Key
Method: http.MethodDelete,
Path: "/ai/key/:id",
Handler: ai.AiApiKeyDeleteHandler(serverCtx),
},
{
// 获取我的API Key列表
Method: http.MethodGet,
Path: "/ai/keys",
Handler: ai.AiApiKeyListHandler(serverCtx),
},
{
// 获取模型列表
Method: http.MethodGet,
Path: "/ai/models",
Handler: ai.AiModelListHandler(serverCtx),
},
{
// 获取我的配额
Method: http.MethodGet,
Path: "/ai/quota/me",
Handler: ai.AiQuotaMeHandler(serverCtx),
},
{
// 获取我的用量记录
Method: http.MethodGet,
Path: "/ai/quota/records",
Handler: ai.AiUsageRecordListHandler(serverCtx),
},
}...,
),
rest.WithPrefix("/api/v1"),
)
server.AddRoutes(
rest.WithMiddlewares(
[]rest.Middleware{serverCtx.Cors, serverCtx.Log, serverCtx.Auth, serverCtx.Authz},
[]rest.Route{
{
// 创建AI模型
Method: http.MethodPost,
Path: "/ai/model",
Handler: ai.AiModelCreateHandler(serverCtx),
},
{
// 更新AI模型
Method: http.MethodPut,
Path: "/ai/model/:id",
Handler: ai.AiModelUpdateHandler(serverCtx),
},
{
// 删除AI模型
Method: http.MethodDelete,
Path: "/ai/model/:id",
Handler: ai.AiModelDeleteHandler(serverCtx),
},
{
// 创建AI平台
Method: http.MethodPost,
Path: "/ai/provider",
Handler: ai.AiProviderCreateHandler(serverCtx),
},
{
// 更新AI平台
Method: http.MethodPut,
Path: "/ai/provider/:id",
Handler: ai.AiProviderUpdateHandler(serverCtx),
},
{
// 删除AI平台
Method: http.MethodDelete,
Path: "/ai/provider/:id",
Handler: ai.AiProviderDeleteHandler(serverCtx),
},
{
// 获取AI平台列表
Method: http.MethodGet,
Path: "/ai/providers",
Handler: ai.AiProviderListHandler(serverCtx),
},
{
// 充值用户额度
Method: http.MethodPost,
Path: "/ai/quota/recharge",
Handler: ai.AiQuotaRechargeHandler(serverCtx),
},
{
// 获取用户额度列表
Method: http.MethodGet,
Path: "/ai/quotas",
Handler: ai.AiQuotaListHandler(serverCtx),
},
{
// 获取AI使用统计
Method: http.MethodGet,
Path: "/ai/stats",
Handler: ai.AiUsageStatsHandler(serverCtx),
},
}...,
),
rest.WithPrefix("/api/v1"),
)
server.AddRoutes(
rest.WithMiddlewares(
[]rest.Middleware{serverCtx.Cors, serverCtx.Log},
[]rest.Route{
{
// 用户登录
Method: http.MethodPost,
Path: "/login",
Handler: auth.LoginHandler(serverCtx),
},
{
// 刷新Token
Method: http.MethodPost,
Path: "/refresh",
Handler: auth.RefreshTokenHandler(serverCtx),
},
{
// 用户注册
Method: http.MethodPost,
Path: "/register",
Handler: auth.RegisterHandler(serverCtx),
},
}...,
),
rest.WithPrefix("/api/v1"),
)
server.AddRoutes(
rest.WithMiddlewares(
[]rest.Middleware{serverCtx.Cors, serverCtx.Log, serverCtx.Auth, serverCtx.Authz},
[]rest.Route{
{
// 获取最近活动列表
Method: http.MethodGet,
Path: "/dashboard/activities",
Handler: dashboard.GetRecentActivitiesHandler(serverCtx),
},
{
// 获取仪表盘统计数据
Method: http.MethodGet,
Path: "/dashboard/stats",
Handler: dashboard.GetDashboardStatsHandler(serverCtx),
},
}...,
),
rest.WithPrefix("/api/v1"),
)
server.AddRoutes(
rest.WithMiddlewares(
[]rest.Middleware{serverCtx.Cors, serverCtx.Log, serverCtx.Auth, serverCtx.Authz},
[]rest.Route{
{
// 获取文件详情
Method: http.MethodGet,
Path: "/file/:id",
Handler: file.GetFileHandler(serverCtx),
},
{
// 更新文件信息
Method: http.MethodPut,
Path: "/file/:id",
Handler: file.UpdateFileHandler(serverCtx),
},
{
// 删除文件
Method: http.MethodDelete,
Path: "/file/:id",
Handler: file.DeleteFileHandler(serverCtx),
},
{
// 获取文件访问URL
Method: http.MethodGet,
Path: "/file/:id/url",
Handler: file.GetFileUrlHandler(serverCtx),
},
{
// 上传文件
Method: http.MethodPost,
Path: "/file/upload",
Handler: file.UploadFileHandler(serverCtx),
},
{
// 获取文件列表
Method: http.MethodGet,
Path: "/files",
Handler: file.GetFileListHandler(serverCtx),
},
}...,
),
rest.WithPrefix("/api/v1"),
)
server.AddRoutes(
rest.WithMiddlewares(
[]rest.Middleware{serverCtx.Cors, serverCtx.Log, serverCtx.Auth},
[]rest.Route{
{
// 获取当前用户可见菜单
Method: http.MethodGet,
Path: "/menus/current",
Handler: menu.GetCurrentMenusHandler(serverCtx),
},
}...,
),
rest.WithPrefix("/api/v1"),
)
server.AddRoutes(
rest.WithMiddlewares(
[]rest.Middleware{serverCtx.Cors, serverCtx.Log, serverCtx.Auth, serverCtx.Authz},
[]rest.Route{
{
// 创建菜单
Method: http.MethodPost,
Path: "/menu",
Handler: menu.CreateMenuHandler(serverCtx),
},
{
// 更新菜单
Method: http.MethodPut,
Path: "/menu/:id",
Handler: menu.UpdateMenuHandler(serverCtx),
},
{
// 删除菜单
Method: http.MethodDelete,
Path: "/menu/:id",
Handler: menu.DeleteMenuHandler(serverCtx),
},
{
// 获取全部菜单列表
Method: http.MethodGet,
Path: "/menus",
Handler: menu.GetMenuListHandler(serverCtx),
},
}...,
),
rest.WithPrefix("/api/v1"),
)
server.AddRoutes(
rest.WithMiddlewares(
[]rest.Middleware{serverCtx.Cors, serverCtx.Log, serverCtx.Auth, serverCtx.Authz},
[]rest.Route{
{
// 创建机构
Method: http.MethodPost,
Path: "/organization",
Handler: organization.CreateOrganizationHandler(serverCtx),
},
{
// 更新机构
Method: http.MethodPut,
Path: "/organization/:id",
Handler: organization.UpdateOrganizationHandler(serverCtx),
},
{
// 删除机构
Method: http.MethodDelete,
Path: "/organization/:id",
Handler: organization.DeleteOrganizationHandler(serverCtx),
},
{
// 添加机构成员
Method: http.MethodPost,
Path: "/organization/:id/member",
Handler: organization.AddOrgMemberHandler(serverCtx),
},
{
// 更新机构成员角色
Method: http.MethodPut,
Path: "/organization/:id/member/:userId",
Handler: organization.UpdateOrgMemberHandler(serverCtx),
},
{
// 移除机构成员
Method: http.MethodDelete,
Path: "/organization/:id/member/:userId",
Handler: organization.RemoveOrgMemberHandler(serverCtx),
},
{
// 获取机构成员
Method: http.MethodGet,
Path: "/organization/:id/members",
Handler: organization.GetOrgMembersHandler(serverCtx),
},
{
// 获取机构列表
Method: http.MethodGet,
Path: "/organizations",
Handler: organization.GetOrganizationListHandler(serverCtx),
},
}...,
),
rest.WithPrefix("/api/v1"),
)
server.AddRoutes(
rest.WithMiddlewares(
[]rest.Middleware{serverCtx.Cors, serverCtx.Log, serverCtx.Auth, serverCtx.Authz},
[]rest.Route{
{
// 切换当前机构
Method: http.MethodPut,
Path: "/profile/current-org",
Handler: profile.SwitchOrgHandler(serverCtx),
},
{
// 获取个人信息
Method: http.MethodGet,
Path: "/profile/me",
Handler: profile.GetProfileHandler(serverCtx),
},
{
// 更新个人资料
Method: http.MethodPut,
Path: "/profile/me",
Handler: profile.UpdateProfileHandler(serverCtx),
},
{
// 获取我的机构列表
Method: http.MethodGet,
Path: "/profile/orgs",
Handler: profile.GetUserOrgsHandler(serverCtx),
},
{
// 修改密码
Method: http.MethodPost,
Path: "/profile/password",
Handler: profile.ChangePasswordHandler(serverCtx),
},
}...,
),
rest.WithPrefix("/api/v1"),
)
server.AddRoutes(
rest.WithMiddlewares(
[]rest.Middleware{serverCtx.Cors, serverCtx.Log, serverCtx.Auth, serverCtx.Authz},
[]rest.Route{
{
// 创建角色
Method: http.MethodPost,
Path: "/role",
Handler: role.CreateRoleHandler(serverCtx),
},
{
// 更新角色
Method: http.MethodPut,
Path: "/role/:id",
Handler: role.UpdateRoleHandler(serverCtx),
},
{
// 删除角色
Method: http.MethodDelete,
Path: "/role/:id",
Handler: role.DeleteRoleHandler(serverCtx),
},
{
// 获取角色菜单
Method: http.MethodGet,
Path: "/role/:id/menus",
Handler: role.GetRoleMenusHandler(serverCtx),
},
{
// 设置角色菜单
Method: http.MethodPut,
Path: "/role/:id/menus",
Handler: role.SetRoleMenusHandler(serverCtx),
},
{
// 获取角色列表
Method: http.MethodGet,
Path: "/roles",
Handler: role.GetRoleListHandler(serverCtx),
},
}...,
),
rest.WithPrefix("/api/v1"),
)
server.AddRoutes(
rest.WithMiddlewares(
[]rest.Middleware{serverCtx.Cors, serverCtx.Log, serverCtx.Auth, serverCtx.Authz},
[]rest.Route{
{
// 创建用户
Method: http.MethodPost,
Path: "/user",
Handler: user.CreateUserHandler(serverCtx),
},
{
// 获取用户详情
Method: http.MethodGet,
Path: "/user/:id",
Handler: user.GetUserHandler(serverCtx),
},
{
// 更新用户信息
Method: http.MethodPut,
Path: "/user/:id",
Handler: user.UpdateUserHandler(serverCtx),
},
{
// 删除用户
Method: http.MethodDelete,
Path: "/user/:id",
Handler: user.DeleteUserHandler(serverCtx),
},
{
// 获取用户列表
Method: http.MethodGet,
Path: "/users",
Handler: user.GetUserListHandler(serverCtx),
},
}...,
),
rest.WithPrefix("/api/v1"),
)
}