对接
This commit is contained in:
@@ -84,17 +84,24 @@ var routes = map[string]routeValue{
|
||||
"GET /logViewer/content": {group: "文件日志", description: "分块读取日志文件内容"},
|
||||
"GET /logViewer/dates": {group: "文件日志", description: "获取存在日志的日期"},
|
||||
"GET /logViewer/files": {group: "文件日志", description: "获取日期下的日志文件"},
|
||||
"GET /api/streams": {group: "直播", description: "获取在线直播列表", public: true},
|
||||
"GET /live/streams": {group: "直播", description: "获取在线直播列表", public: true},
|
||||
"GET /live/streams/:streamId": {group: "直播", description: "获取直播间状态", public: true},
|
||||
"GET /live/categories": {group: "宇宙直播", description: "获取直播分类", public: true},
|
||||
"GET /live/rooms": {group: "宇宙直播", description: "获取直播间", public: true},
|
||||
"GET /live/rooms/:id": {group: "宇宙直播", description: "获取直播间详情", public: true},
|
||||
"POST /live/rooms/:id/like": {group: "宇宙直播", description: "直播间点赞", public: true},
|
||||
"GET /live/rooms/:id/follow": {group: "宇宙直播", description: "查询关注状态"},
|
||||
"POST /live/rooms/:id/follow": {group: "宇宙直播", description: "关注主播"},
|
||||
"DELETE /live/rooms/:id/follow": {group: "宇宙直播", description: "取消关注"},
|
||||
"GET /live/rooms/:id/messages": {group: "宇宙直播", description: "获取直播间聊天记录", public: true},
|
||||
"GET /live/gifts": {group: "宇宙直播", description: "获取礼物", public: true},
|
||||
"GET /live/recharge/providers": {group: "宇宙直播", description: "获取可用充值支付渠道", public: true},
|
||||
"GET /live/recharge/plans": {group: "宇宙直播", description: "获取充值档位", public: true},
|
||||
"GET /live/recharge/orders/:orderNo": {group: "宇宙直播", description: "查询我的充值订单"},
|
||||
"GET /live/recharge/orders/:orderNo/status": {group: "宇宙直播", description: "查询我的充值支付状态"},
|
||||
"GET /live/settings": {group: "宇宙直播", description: "获取直播设置", public: true},
|
||||
"GET /live/client/me": {group: "宇宙直播", description: "获取直播用户资料"},
|
||||
"GET /live/client/balance": {group: "宇宙直播", description: "获取直播用户钻石余额"},
|
||||
"GET /live/admin/dashboard": {group: "宇宙直播", description: "直播数据概览"},
|
||||
"GET /live/admin/categories": {group: "宇宙直播", description: "查询直播分类"},
|
||||
"GET /live/admin/rooms": {group: "宇宙直播", description: "查询直播间"},
|
||||
@@ -114,6 +121,7 @@ var routes = map[string]routeValue{
|
||||
"POST /live/recharge/orders": {group: "宇宙直播", description: "创建充值订单", audit: true},
|
||||
"POST /live/client/auth/login": {group: "宇宙直播", description: "直播用户登录", public: true},
|
||||
"POST /live/client/auth/register": {group: "宇宙直播", description: "直播用户注册", public: true},
|
||||
"POST /live/client/auth/logout": {group: "宇宙直播", description: "直播用户退出", audit: true},
|
||||
"PUT /live/admin/categories/:id": {group: "宇宙直播", description: "更新直播分类", audit: true},
|
||||
"PUT /live/admin/rooms/:id": {group: "宇宙直播", description: "更新直播间", audit: true},
|
||||
"PUT /live/admin/rooms/sort": {group: "宇宙直播", description: "保存直播间排序", audit: true},
|
||||
|
||||
@@ -0,0 +1,57 @@
|
||||
package routecatalog
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestLiveClientRouteVisibilityContract(t *testing.T) {
|
||||
public := []struct{ method, path string }{
|
||||
{"GET", "/live/streams"},
|
||||
{"GET", "/live/streams/:streamId"},
|
||||
{"GET", "/live/categories"},
|
||||
{"GET", "/live/rooms"},
|
||||
{"GET", "/live/rooms/:id"},
|
||||
{"POST", "/live/rooms/:id/like"},
|
||||
{"GET", "/live/rooms/:id/messages"},
|
||||
{"GET", "/live/gifts"},
|
||||
{"GET", "/live/recharge/providers"},
|
||||
{"GET", "/live/recharge/plans"},
|
||||
{"POST", "/live/client/auth/login"},
|
||||
{"POST", "/live/client/auth/register"},
|
||||
}
|
||||
for _, route := range public {
|
||||
descriptor, ok := Lookup(route.method, route.path)
|
||||
if !ok || !descriptor.Public {
|
||||
t.Errorf("%s %s must be public: found=%v descriptor=%+v", route.method, route.path, ok, descriptor)
|
||||
}
|
||||
}
|
||||
|
||||
private := []struct{ method, path string }{
|
||||
{"GET", "/live/client/me"},
|
||||
{"GET", "/live/client/balance"},
|
||||
{"POST", "/live/client/auth/logout"},
|
||||
{"GET", "/live/rooms/:id/follow"},
|
||||
{"POST", "/live/rooms/:id/follow"},
|
||||
{"DELETE", "/live/rooms/:id/follow"},
|
||||
{"POST", "/live/rooms/:id/gifts"},
|
||||
{"POST", "/live/recharge/orders"},
|
||||
{"GET", "/live/recharge/orders/:orderNo"},
|
||||
{"GET", "/live/recharge/orders/:orderNo/status"},
|
||||
}
|
||||
for _, route := range private {
|
||||
descriptor, ok := Lookup(route.method, route.path)
|
||||
if !ok || descriptor.Public {
|
||||
t.Errorf("%s %s must require login: found=%v descriptor=%+v", route.method, route.path, ok, descriptor)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestLiveMoneyChangingRoutesAreAudited(t *testing.T) {
|
||||
for _, route := range []struct{ method, path string }{
|
||||
{"POST", "/live/rooms/:id/gifts"},
|
||||
{"POST", "/live/recharge/orders"},
|
||||
{"POST", "/live/client/auth/logout"},
|
||||
} {
|
||||
if !ShouldAudit(route.method, route.path) {
|
||||
t.Errorf("%s %s must be audited", route.method, route.path)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user