server/apis/common.api

134 lines
3.8 KiB
Plaintext

syntax = "v1"
info (
title: "Common API"
desc: "API for ppanel"
author: "Tension"
email: "tension@ppanel.com"
version: "0.0.1"
)
import "./types.api"
type (
VeifyConfig {
TurnstileSiteKey string `json:"turnstile_site_key"`
EnableLoginVerify bool `json:"enable_login_verify"`
EnableRegisterVerify bool `json:"enable_register_verify"`
EnableResetPasswordVerify bool `json:"enable_reset_password_verify"`
}
GetGlobalConfigResponse {
Site SiteConfig `json:"site"`
Verify VeifyConfig `json:"verify"`
Auth AuthConfig `json:"auth"`
Invite InviteConfig `json:"invite"`
Currency Currency `json:"currency"`
Subscribe SubscribeConfig `json:"subscribe"`
VerifyCode PubilcVerifyCodeConfig `json:"verify_code"`
OAuthMethods []string `json:"oauth_methods"`
WebAd bool `json:"web_ad"`
}
Currency {
CurrencyUnit string `json:"currency_unit"`
CurrencySymbol string `json:"currency_symbol"`
}
GetTosResponse {
TosContent string `json:"tos_content"`
}
// GetCodeRequest Get code request
SendCodeRequest {
Email string `json:"email" validate:"required"`
Type uint8 `json:"type" validate:"required"`
}
SendSmsCodeRequest {
Type uint8 `json:"type" validate:"required"`
Telephone string `json:"telephone" validate:"required"`
TelephoneAreaCode string `json:"telephone_area_code" validate:"required"`
}
// GetCodeResponse Get code response
SendCodeResponse {
Code string `json:"code,omitempty"`
Status bool `json:"status"`
}
// GetStatResponse Get stat response
GetStatResponse {
User int64 `json:"user"`
Node int64 `json:"node"`
Country int64 `json:"country"`
Protocol []string `json:"protocol"`
}
// Get ads
GetAdsRequest {
Device string `form:"device"`
Position string `form:"position"`
}
GetAdsResponse {
List []Ads `json:"list"`
}
CheckVerificationCodeRequest {
Method string `json:"method" validate:"required,oneof=email mobile"`
Account string `json:"account" validate:"required"`
Code string `json:"code" validate:"required"`
Type uint8 `json:"type" validate:"required"`
}
CheckVerificationCodeRespone {
Status bool `json:"status"`
}
SubscribeClient {
Id int64 `json:"id"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Icon string `json:"icon,omitempty"`
Scheme string `json:"scheme,omitempty"`
IsDefault bool `json:"is_default"`
DownloadLink DownloadLink `json:"download_link,omitempty"`
}
GetSubscribeClientResponse {
Total int64 `json:"total"`
List []SubscribeClient `json:"list"`
}
)
@server (
prefix: v1/common
group: common
)
service ppanel {
@doc "Get global config"
@handler GetGlobalConfig
get /site/config returns (GetGlobalConfigResponse)
@doc "Get Tos Content"
@handler GetTos
get /site/tos returns (GetTosResponse)
@doc "Get Privacy Policy"
@handler GetPrivacyPolicy
get /site/privacy returns (PrivacyPolicyConfig)
@doc "Get stat"
@handler GetStat
get /site/stat returns (GetStatResponse)
@doc "Get verification code"
@handler SendEmailCode
post /send_code (SendCodeRequest) returns (SendCodeResponse)
@doc "Get sms verification code"
@handler SendSmsCode
post /send_sms_code (SendSmsCodeRequest) returns (SendCodeResponse)
@doc "Get Ads"
@handler GetAds
get /ads (GetAdsRequest) returns (GetAdsResponse)
@doc "Check verification code"
@handler CheckVerificationCode
post /check_verification_code (CheckVerificationCodeRequest) returns (CheckVerificationCodeRespone)
@doc "Get Client"
@handler GetClient
get /client returns (GetSubscribeClientResponse)
}