Create & Init Project...

This commit is contained in:
2019-04-22 18:49:16 +08:00
commit fc4fa37393
25440 changed files with 4054998 additions and 0 deletions

View File

@@ -0,0 +1,61 @@
load(
"@io_bazel_rules_go//proto:def.bzl",
"go_proto_library",
)
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
proto_library(
name = "v2_proto",
srcs = ["user_resource.proto"],
tags = ["automanaged"],
deps = ["@gogo_special_proto//github.com/gogo/protobuf/gogoproto"],
)
go_proto_library(
name = "v2_go_proto",
compilers = ["@io_bazel_rules_go//proto:gogofast_grpc"],
importpath = "go-common/app/service/live/resource/api/grpc/v2",
proto = ":v2_proto",
tags = ["automanaged"],
deps = ["@com_github_gogo_protobuf//gogoproto:go_default_library"],
)
go_library(
name = "go_default_library",
srcs = [
"client.go",
"user_resource.bm.go",
],
embed = [":v2_go_proto"],
importpath = "go-common/app/service/live/resource/api/grpc/v2",
tags = ["automanaged"],
visibility = ["//visibility:public"],
deps = [
"//library/net/http/blademaster:go_default_library",
"//library/net/rpc/warden:go_default_library",
"@com_github_gogo_protobuf//gogoproto:go_default_library",
"@com_github_gogo_protobuf//proto:go_default_library",
"@org_golang_google_grpc//:go_default_library",
"@org_golang_x_net//context:go_default_library",
],
)
filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)
filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

View File

@@ -0,0 +1,29 @@
package v2
import (
"context"
"google.golang.org/grpc"
"go-common/library/net/rpc/warden"
)
// AppID 应用程序标识
const AppID = "live.resource"
// Client 对外服务接口
type Client struct {
UserResourceClient
}
// NewClient 用户资源 grpc Client
func NewClient(cfg *warden.ClientConfig, opts ...grpc.DialOption) (*Client, error) {
client := warden.NewClient(cfg, opts...)
conn, err := client.Dial(context.Background(), "discovery://default/"+AppID)
if err != nil {
return nil, err
}
cli := &Client{}
cli.UserResourceClient = NewUserResourceClient(conn)
return cli, nil
}

View File

@@ -0,0 +1,115 @@
// Code generated by protoc-gen-bm v0.1, DO NOT EDIT.
// source: api/grpc/v2/user_resource.proto
/*
Package v2 is a generated blademaster stub package.
This code was generated with go-common/app/tool/bmgen/protoc-gen-bm v0.1.
It is generated from these files:
api/grpc/v2/user_resource.proto
*/
package v2
import (
"context"
bm "go-common/library/net/http/blademaster"
)
// to suppressed 'imported but not used warning'
var _ *bm.Context
var _ context.Context
// ======================
// UserResource Interface
// ======================
type UserResource interface {
// Add 添加资源接口
Add(ctx context.Context, req *AddReq) (resp *AddResp, err error)
// Edit 编辑现有资源
Edit(ctx context.Context, req *EditReq) (resp *EditResp, err error)
// Query 请求单个资源
Query(ctx context.Context, req *QueryReq) (resp *QueryResp, err error)
// List 获取资源列表
List(ctx context.Context, req *ListReq) (resp *ListResp, err error)
// SetStatus 更改资源状态
SetStatus(ctx context.Context, req *SetStatusReq) (resp *SetStatusResp, err error)
}
var v2UserResourceSvc UserResource
// @params AddReq
// @router GET /xlive/resource/v2/userResource/Add
// @response AddResp
func userResourceAdd(c *bm.Context) {
p := new(AddReq)
if err := c.Bind(p); err != nil {
return
}
resp, err := v2UserResourceSvc.Add(c, p)
c.JSON(resp, err)
}
// @params EditReq
// @router GET /xlive/resource/v2/userResource/Edit
// @response EditResp
func userResourceEdit(c *bm.Context) {
p := new(EditReq)
if err := c.Bind(p); err != nil {
return
}
resp, err := v2UserResourceSvc.Edit(c, p)
c.JSON(resp, err)
}
// @params QueryReq
// @router GET /xlive/resource/v2/userResource/Query
// @response QueryResp
func userResourceQuery(c *bm.Context) {
p := new(QueryReq)
if err := c.Bind(p); err != nil {
return
}
resp, err := v2UserResourceSvc.Query(c, p)
c.JSON(resp, err)
}
// @params ListReq
// @router GET /xlive/resource/v2/userResource/List
// @response ListResp
func userResourceList(c *bm.Context) {
p := new(ListReq)
if err := c.Bind(p); err != nil {
return
}
resp, err := v2UserResourceSvc.List(c, p)
c.JSON(resp, err)
}
// @params SetStatusReq
// @router GET /xlive/resource/v2/userResource/SetStatus
// @response SetStatusResp
func userResourceSetStatus(c *bm.Context) {
p := new(SetStatusReq)
if err := c.Bind(p); err != nil {
return
}
resp, err := v2UserResourceSvc.SetStatus(c, p)
c.JSON(resp, err)
}
// RegisterV2UserResourceService Register the blademaster route with middleware map
// midMap is the middleware map, the key is defined in proto
func RegisterV2UserResourceService(e *bm.Engine, svc UserResource, midMap map[string]bm.HandlerFunc) {
v2UserResourceSvc = svc
e.GET("/xlive/resource/v2/userResource/Add", userResourceAdd)
e.GET("/xlive/resource/v2/userResource/Edit", userResourceEdit)
e.GET("/xlive/resource/v2/userResource/Query", userResourceQuery)
e.GET("/xlive/resource/v2/userResource/List", userResourceList)
e.GET("/xlive/resource/v2/userResource/SetStatus", userResourceSetStatus)
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,184 @@
syntax = "proto3";
package live.resource.v2;
option go_package = "v2";
import "github.com/gogo/protobuf/gogoproto/gogo.proto";
// 请求创建资源
message AddReq {
//资源类型
int32 res_type = 1 [(gogoproto.moretags) = 'form:"res_type" validate:"required"'];
//名称
string title = 2 [(gogoproto.moretags) = 'form:"title" validate:"required"'];
//URL
string url = 3 [(gogoproto.moretags) = 'form:"url" validate:"required"'];
//权重
int32 weight = 4 [(gogoproto.moretags) = 'form:"weight" validate:"required"'];
//创建人
string creator = 5 [(gogoproto.moretags) = 'form:"creator" validate:"required"'];
}
// 返回创建结果
message AddResp {
//ID
int32 id = 1 [(gogoproto.jsontag) = "id"];
//资源类型
int32 res_type = 2 [(gogoproto.jsontag) = "res_type"];
//资源ID
int32 custom_id = 3 [(gogoproto.jsontag) = "custom_id"];
//名称
string title = 4 [(gogoproto.jsontag) = "title"];
//URL
string url = 5 [(gogoproto.jsontag) = "url"];
//权重
int32 weight = 6 [(gogoproto.jsontag) = "weight"];
//创建人
string creator = 7 [(gogoproto.jsontag) = "creator"];
//"状态1.上线中2.下线"
int32 status = 8 [(gogoproto.jsontag) = "status"];
//创建时刻
string ctime = 9 [(gogoproto.jsontag) = "ctime"];
//修改时刻
string mtime = 10 [(gogoproto.jsontag) = "mtime"];
}
// 请求编辑资源
message EditReq {
//资源类型
int32 res_type = 1 [(gogoproto.moretags) = 'form:"res_type" validate:"required"'];
//资源ID
int32 custom_id = 2 [(gogoproto.moretags) = 'form:"custom_id" validate:"required"'];
//名称
string title = 3 [(gogoproto.moretags) = 'form:"title"'];
//URL
string url = 4 [(gogoproto.moretags) = 'form:"url"'];
//权重
int32 weight = 5 [(gogoproto.moretags) = 'form:"weight"'];
}
// 返回编辑结果
message EditResp {
//ID
int32 id = 1 [(gogoproto.jsontag) = "id"];
//资源类型
int32 res_type = 2 [(gogoproto.jsontag) = "res_type"];
//资源ID
int32 custom_id = 3 [(gogoproto.jsontag) = "custom_id"];
//名称
string title = 4 [(gogoproto.jsontag) = "title"];
//URL
string url = 5 [(gogoproto.jsontag) = "url"];
//权重
int32 weight = 6 [(gogoproto.jsontag) = "weight"];
//创建人
string creator = 7 [(gogoproto.jsontag) = "creator"];
//"状态1.上线中2.下线"
int32 status = 8 [(gogoproto.jsontag) = "status"];
//创建时刻
string ctime = 9 [(gogoproto.jsontag) = "ctime"];
//修改时刻
string mtime = 10 [(gogoproto.jsontag) = "mtime"];
}
// 请求单个资源
message QueryReq {
//资源类型
int32 res_type = 1 [(gogoproto.moretags) = 'form:"res_type" validate:"required"'];
//资源ID
int32 custom_id = 2 [(gogoproto.moretags) = 'form:"custom_id" validate:"required"'];
}
// 返回单个资源
message QueryResp {
//ID
int32 id = 1 [(gogoproto.jsontag) = "id"];
//资源类型
int32 res_type = 2 [(gogoproto.jsontag) = "res_type"];
//资源ID
int32 custom_id = 3 [(gogoproto.jsontag) = "custom_id"];
//名称
string title = 4 [(gogoproto.jsontag) = "title"];
//URL
string url = 5 [(gogoproto.jsontag) = "url"];
//权重
int32 weight = 6 [(gogoproto.jsontag) = "weight"];
//创建人
string creator = 7 [(gogoproto.jsontag) = "creator"];
//"状态1.上线中2.下线"
int32 status = 8 [(gogoproto.jsontag) = "status"];
//创建时刻
string ctime = 9 [(gogoproto.jsontag) = "ctime"];
//修改时刻
string mtime = 10 [(gogoproto.jsontag) = "mtime"];
}
// 请求资源列表
message ListReq {
//资源类型
int32 res_type = 1 [(gogoproto.moretags) = 'form:"res_type" validate:"required"'];
//页码
int32 page = 2 [(gogoproto.moretags) = 'form:"page"'];
//每页数据量
int32 page_size = 3 [(gogoproto.moretags) = 'form:"page_size"'];
}
// 返回资源列表
message ListResp {
int32 currentPage = 1 [(gogoproto.jsontag) = "currentPage"];
int32 totalCount = 2 [(gogoproto.jsontag) = "totalCount"];
repeated List list = 3 [(gogoproto.jsontag) = "list"];
message List {
//ID
int32 id = 1 [(gogoproto.jsontag) = "id"];
//资源类型
int32 res_type = 2 [(gogoproto.jsontag) = "res_type"];
//资源ID
int32 custom_id = 3 [(gogoproto.jsontag) = "custom_id"];
//名称
string title = 4 [(gogoproto.jsontag) = "title"];
//URL
string url = 5 [(gogoproto.jsontag) = "url"];
//权重
int32 weight = 6 [(gogoproto.jsontag) = "weight"];
//创建人
string creator = 7 [(gogoproto.jsontag) = "creator"];
//"状态1.上线中2.下线"
int32 status = 8 [(gogoproto.jsontag) = "status"];
//创建时刻
string ctime = 9 [(gogoproto.jsontag) = "ctime"];
//修改时刻
string mtime = 10 [(gogoproto.jsontag) = "mtime"];
}
}
// 请求变更资源状态
message SetStatusReq {
//资源类型
int32 res_type = 1 [(gogoproto.moretags) = 'form:"res_type" validate:"required"'];
//页码
int32 custom_id = 2 [(gogoproto.moretags) = 'form:"custom_id" validate:"required"'];
//每页数据量
int32 status = 3 [(gogoproto.moretags) = 'form:"status" validate:"required"'];
}
// 返回变更结果
message SetStatusResp {
}
service UserResource {
//Add 添加资源接口
rpc Add(AddReq) returns (AddResp);
//Edit 编辑现有资源
rpc Edit(EditReq) returns (EditResp);
//Query 请求单个资源
rpc Query(QueryReq) returns (QueryResp);
//List 获取资源列表
rpc List(ListReq) returns (ListResp);
//SetStatus 更改资源状态
rpc SetStatus(SetStatusReq) returns (SetStatusResp);
}

View File

@@ -0,0 +1,194 @@
##Add 添加资源接口
`GET http://api.live.bilibili.com/xlive/resource/v2/userResource/Add`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|res_type|是|integer|资源类型|
|title|是|string|名称|
|url|是|string|URL|
|weight|是|integer|权重|
|creator|是|string|创建人|
```json
{
"code": 0,
"message": "ok",
"data": {
// ID
"id": 0,
// 资源类型
"res_type": 0,
// 资源ID
"custom_id": 0,
// 名称
"title": "",
// URL
"url": "",
// 权重
"weight": 0,
// 创建人
"creator": "",
// "状态1.上线中2.下线"
"status": 0,
// 创建时刻
"ctime": "",
// 修改时刻
"mtime": ""
}
}
```
##Edit 编辑现有资源
`GET http://api.live.bilibili.com/xlive/resource/v2/userResource/Edit`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|res_type|是|integer|资源类型|
|custom_id|是|integer|资源ID|
|title|否|string|名称|
|url|否|string|URL|
|weight|否|integer|权重|
```json
{
"code": 0,
"message": "ok",
"data": {
// ID
"id": 0,
// 资源类型
"res_type": 0,
// 资源ID
"custom_id": 0,
// 名称
"title": "",
// URL
"url": "",
// 权重
"weight": 0,
// 创建人
"creator": "",
// "状态1.上线中2.下线"
"status": 0,
// 创建时刻
"ctime": "",
// 修改时刻
"mtime": ""
}
}
```
##Query 请求单个资源
`GET http://api.live.bilibili.com/xlive/resource/v2/userResource/Query`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|res_type|是|integer|资源类型|
|custom_id|是|integer|资源ID|
```json
{
"code": 0,
"message": "ok",
"data": {
// ID
"id": 0,
// 资源类型
"res_type": 0,
// 资源ID
"custom_id": 0,
// 名称
"title": "",
// URL
"url": "",
// 权重
"weight": 0,
// 创建人
"creator": "",
// "状态1.上线中2.下线"
"status": 0,
// 创建时刻
"ctime": "",
// 修改时刻
"mtime": ""
}
}
```
##List 获取资源列表
`GET http://api.live.bilibili.com/xlive/resource/v2/userResource/List`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|res_type|是|integer|资源类型|
|page|否|integer|页码|
|page_size|否|integer|每页数据量|
```json
{
"code": 0,
"message": "ok",
"data": {
"currentPage": 0,
"totalCount": 0,
"list": [
{
// ID
"id": 0,
// 资源类型
"res_type": 0,
// 资源ID
"custom_id": 0,
// 名称
"title": "",
// URL
"url": "",
// 权重
"weight": 0,
// 创建人
"creator": "",
// "状态1.上线中2.下线"
"status": 0,
// 创建时刻
"ctime": "",
// 修改时刻
"mtime": ""
}
]
}
}
```
##SetStatus 更改资源状态
`GET http://api.live.bilibili.com/xlive/resource/v2/userResource/SetStatus`
### 请求参数
|参数名|必选|类型|描述|
|:---|:---|:---|:---|
|res_type|是|integer|资源类型|
|custom_id|是|integer|页码|
|status|是|integer|每页数据量|
```json
{
"code": 0,
"message": "ok",
"data": {
}
}
```