syntax = "v1" info ( title: "Subscribe API" desc: "API for ppanel" author: "Tension" email: "tension@ppanel.com" version: "0.0.1" ) import "../types.api" type ( QuerySubscribeListRequest { Language string `form:"language"` } QueryUserSubscribeNodeListResponse { List []UserSubscribeInfo `json:"list"` } UserSubscribeInfo { Id int64 `json:"id"` UserId int64 `json:"user_id"` OrderId int64 `json:"order_id"` SubscribeId int64 `json:"subscribe_id"` StartTime int64 `json:"start_time"` ExpireTime int64 `json:"expire_time"` FinishedAt int64 `json:"finished_at"` ResetTime int64 `json:"reset_time"` Traffic int64 `json:"traffic"` Download int64 `json:"download"` Upload int64 `json:"upload"` Token string `json:"token"` Status uint8 `json:"status"` CreatedAt int64 `json:"created_at"` UpdatedAt int64 `json:"updated_at"` IsTryOut bool `json:"is_try_out"` Nodes []*UserSubscribeNodeInfo `json:"nodes"` } UserSubscribeNodeInfo{ Id int64 `json:"id"` Name string `json:"name"` Uuid string `json:"uuid"` Protocol string `json:"protocol"` Port uint16 `json:"port"` Address string `json:"address"` Tags []string `json:"tags"` Country string `json:"country"` City string `json:"city"` CreatedAt int64 `json:"created_at"` } ) @server ( prefix: v1/public/subscribe group: public/subscribe middleware: AuthMiddleware,DeviceMiddleware ) service ppanel { @doc "Get subscribe list" @handler QuerySubscribeList get /list (QuerySubscribeListRequest) returns (QuerySubscribeListResponse) @doc "Get user subscribe node info" @handler QueryUserSubscribeNodeList get /node/list returns (QueryUserSubscribeNodeListResponse) }