Files
zzyxyz_go_api/cmd/bookmark/main.go
zzy 429a863b76 feat(bookmark): 添加 Authorization 请求头支持
为 CORS 配置添加 `Authorization` 请求头,以支持携带认证信息的跨域请求。

feat(user-np): 改进错误信息和用户注册流程

- 在注册 VFS 服务失败时返回更详细的错误信息,包括状态码和响应体内容。
- 用户创建失败时返回具体的错误详情,并确保数据库记录被正确回滚。
- 注销用户时先尝试删除 VFS 服务中的相关资源,再执行数据库删除操作。
- 使用 `Unscoped().Delete()` 确保物理删除用户数据。

feat(vfs): 完善用户目录结构及节点创建逻辑

- 创建用户主目录 `/home/username` 及其子目录 `.Recycle_Bin`。
- 调整 `CreateVFSNode` 方法参数类型为值传递。
- 修复创建用户目录时传参不一致的问题。
- 删除用户时递归清理其在 VFS 中的所有节点,并通过代理删除关联的服务节点。

feat(mage): 新增生成 TypeScript 类型定义的任务

新增 `Gen_TS` Mage 任务用于将 OpenAPI 配置文件转换为 TypeScript 类型定义文件,
支持 `vfs`、`bookmark` 和 `user_np` 模块。
2025-09-28 12:28:22 +08:00

50 lines
1.6 KiB
Go

package main
import (
"log"
bookmarks_api "git.zzyxyz.com/zzy/zzyxyz_go_api/gen/bookmarks_server"
user_np_api "git.zzyxyz.com/zzy/zzyxyz_go_api/gen/user_np_server"
"git.zzyxyz.com/zzy/zzyxyz_go_api/internal/bookmarks"
"github.com/gin-contrib/cors"
"github.com/gin-gonic/gin"
)
func main() {
gin.SetMode(gin.ReleaseMode)
router := gin.Default()
// 允许所有源的示例配置
config := cors.Config{
AllowAllOrigins: true,
AllowMethods: []string{"GET", "POST", "PUT", "PATCH", "DELETE", "HEAD"},
AllowHeaders: []string{"Origin", "Content-Length", "Content-Type", "Authorization"},
}
router.Use(cors.New(config))
api_router := router.Group("/api")
{
// create a type that satisfies the `api.ServerInterface`,
// which contains an implementation of every operation from the generated code
if server, err := bookmarks.NewBookMarks("./data/bookmark.sqlite3"); err != nil {
log.Fatal("Failed to create bookmarks server:", err)
} else if permission, err := bookmarks.NewBookMarkPermission(); err != nil || permission == nil {
log.Fatal("Failed to create bookmarks permission:", err)
} else {
bookmarks_api.RegisterHandlersWithOptions(api_router, server, *permission)
}
// create a type that satisfies the `api.ServerInterface`,
// which contains an implementation of every operation from the generated code
if server, err := bookmarks.NewUserNP("./data/user_np.sqlite3"); err != nil {
log.Fatal("Failed to create user_np server:", err)
} else {
user_np_api.RegisterHandlers(api_router, server)
}
}
var listener = "localhost:8081"
log.Printf("Starting server at http://%s", listener)
log.Fatal(router.Run(listener))
}