// Code generated by goctl. DO NOT EDIT. // goctl 1.8.5 package handler import ( "net/http" "time" auth "backend/internal/handler/auth" chat "backend/internal/handler/chat" fileStorage "backend/internal/handler/fileStorage" ping "backend/internal/handler/ping" user "backend/internal/handler/user" "backend/internal/svc" "github.com/zeromicro/go-zero/rest" ) func RegisterHandlers(server *rest.Server, serverCtx *svc.ServiceContext) { server.AddRoutes( []rest.Route{ { // 執行密碼重設 Method: http.MethodPut, Path: "/password-resets", Handler: auth.ResetPasswordHandler(serverCtx), }, { // 請求發送密碼重設驗證碼 Method: http.MethodPost, Path: "/password-resets/request", Handler: auth.RequestPasswordResetHandler(serverCtx), }, { // 校驗密碼重設驗證碼 Method: http.MethodPost, Path: "/password-resets/verify", Handler: auth.VerifyPasswordResetCodeHandler(serverCtx), }, { // 註冊新帳號 Method: http.MethodPost, Path: "/register", Handler: auth.RegisterHandler(serverCtx), }, { // 使用者登入 Method: http.MethodPost, Path: "/sessions", Handler: auth.LoginHandler(serverCtx), }, { // 刷新 Access Token Method: http.MethodPost, Path: "/sessions/refresh", Handler: auth.RefreshTokenHandler(serverCtx), }, }, rest.WithPrefix("/api/v1/auth"), rest.WithTimeout(10000*time.Millisecond), ) server.AddRoutes( rest.WithMiddlewares( []rest.Middleware{serverCtx.AuthMiddleware}, []rest.Route{ { // 創建聊天室 Method: http.MethodPost, Path: "/rooms", Handler: chat.CreateRoomHandler(serverCtx), }, { // 查詢聊天室列表 Method: http.MethodGet, Path: "/rooms", Handler: chat.ListRoomsHandler(serverCtx), }, { // 取得聊天室資訊 Method: http.MethodGet, Path: "/rooms/:room_id", Handler: chat.GetRoomHandler(serverCtx), }, { // 更新聊天室資訊 Method: http.MethodPut, Path: "/rooms/:room_id", Handler: chat.UpdateRoomHandler(serverCtx), }, { // 刪除聊天室 Method: http.MethodDelete, Path: "/rooms/:room_id", Handler: chat.DeleteRoomHandler(serverCtx), }, { // 添加成員到聊天室 Method: http.MethodPost, Path: "/rooms/:room_id/members", Handler: chat.AddMemberHandler(serverCtx), }, { // 查詢聊天室成員列表 Method: http.MethodGet, Path: "/rooms/:room_id/members", Handler: chat.ListMembersHandler(serverCtx), }, { // 移除聊天室成員 Method: http.MethodDelete, Path: "/rooms/:room_id/members/:uid", Handler: chat.RemoveMemberHandler(serverCtx), }, { // 檢查用戶是否在聊天室中 Method: http.MethodGet, Path: "/rooms/:room_id/members/:uid", Handler: chat.CheckUserInRoomHandler(serverCtx), }, { // 更新成員角色 Method: http.MethodPut, Path: "/rooms/:room_id/members/:uid/role", Handler: chat.UpdateMemberRoleHandler(serverCtx), }, { // 發送訊息 Method: http.MethodPost, Path: "/rooms/:room_id/messages", Handler: chat.SendMessageHandler(serverCtx), }, { // 查詢訊息列表 Method: http.MethodGet, Path: "/rooms/:room_id/messages", Handler: chat.ListMessagesHandler(serverCtx), }, { // 查詢用戶所在的聊天室 Method: http.MethodGet, Path: "/users/rooms", Handler: chat.GetUserRoomsHandler(serverCtx), }, }..., ), rest.WithPrefix("/api/v1/chat"), rest.WithTimeout(30000*time.Millisecond), ) server.AddRoutes( rest.WithMiddlewares( []rest.Middleware{serverCtx.AuthMiddleware}, []rest.Route{ { // create - 上傳圖片檔案 Method: http.MethodPost, Path: "/fileStorage/img/upload", Handler: fileStorage.UploadImgHandler(serverCtx), }, { // create - 上傳影片檔案 Method: http.MethodPost, Path: "/fileStorage/video/upload", Handler: fileStorage.UploadVideoHandler(serverCtx), }, }..., ), rest.WithPrefix("/api/v1/fileStorage"), rest.WithTimeout(300000*time.Millisecond), ) server.AddRoutes( []rest.Route{ { // 系統健康檢查 Method: http.MethodGet, Path: "/health", Handler: ping.PingHandler(serverCtx), }, }, rest.WithPrefix("/api/v1"), rest.WithTimeout(10000*time.Millisecond), ) server.AddRoutes( rest.WithMiddlewares( []rest.Middleware{serverCtx.AuthMiddleware}, []rest.Route{ { // 取得當前登入的會員資訊(自己) Method: http.MethodGet, Path: "/me", Handler: user.GetUserInfoHandler(serverCtx), }, { // 更新當前登入的會員資訊 Method: http.MethodPut, Path: "/me", Handler: user.UpdateUserInfoHandler(serverCtx), }, { // 修改當前登入使用者的密碼 Method: http.MethodPut, Path: "/me/password", Handler: user.UpdatePasswordHandler(serverCtx), }, { // 請求發送驗證碼 (用於驗證信箱/手機) Method: http.MethodPost, Path: "/me/verifications", Handler: user.RequestVerificationCodeHandler(serverCtx), }, { // 提交驗證碼以完成驗證 Method: http.MethodPut, Path: "/me/verifications", Handler: user.SubmitVerificationCodeHandler(serverCtx), }, }..., ), rest.WithPrefix("/api/v1/user"), rest.WithTimeout(10000*time.Millisecond), ) }