syntax = "v1"

type (
	// OAuth provider request | OAuth提供商查询请求
	// swagger:parameters GetOauthProviderAdmin GetOauthProviderListAdmin
	OauthProviderReq {
		BaseID
		*Pagination

		// Name | 第三方提供商名称
		//
		// Required: false
		// Example: wechat
		Name string `form:"name,optional"`

		// ClientId | 第三方客户端ID (like)
		//
		// Required: false
		// Example: wx21k2j193j2ksdfaak291l
		ClientId string `form:"clientId,optional"`

		// 是否系统内置
		//
		// Required: false
		System *bool `form:"system,optional"`

		// 是否已初始化
		//
		// Required: false
		Init *bool `form:"init,optional"`
	}

		// OAuth provider list response | OAuth提供商查询返回
	OauthProviderListResp {
		Page *Pagination `json:"page,optional"`

		List []*OauthProviderInfo `json:"list"`
	}
)

@server(
	jwt: Auth
	group: oauthprovider_admin
	middleware: Authority
	prefix: /api/admin/oauth_provider
)
service api {
	// Create oauth provider information | 创建第三方信息
	@handler createOauthProviderAdmin
	post /create (OauthProviderInfo)

	// Update oauth provider information | 更新第三方信息
	@handler updateOauthProviderAdmin
	post /update (OauthProviderInfo)

	// Delete oauth provider information | 删除第三方信息
	@handler deleteOauthProviderAdmin
	post /delete (BaseIDs)

	// Get oauth provider list | 获取第三方信息列表
	@handler getOauthProviderListAdmin
	get /list (OauthProviderReq) returns (OauthProviderListResp)

	// Get oauth provider by Params | 根据条件获取第三方信息
	@handler getOauthProviderAdmin
	get / (OauthProviderReq) returns (OauthProviderInfo)
}