6 "github.com/gin-gonic/gin"
11 Handlers []gin.HandlerFunc
17 Middlewares []Middleware
26 {"POST", []gin.HandlerFunc{Signup}, "/signup"},
27 {"POST", []gin.HandlerFunc{Signin}, "/signin"},
28 {"POST", []gin.HandlerFunc{PasswordReset}, "/passwordreset"},
29 {"POST", []gin.HandlerFunc{ChangePassword}, "/changepassword"},
30 {"POST", []gin.HandlerFunc{ConfirmEmail}, "/confirmemail"},
35 []Middleware{JwtAuth, UserConfirmed},
37 {"GET", []gin.HandlerFunc{OtpEnrollment}, "/enroll"},
38 {"POST", []gin.HandlerFunc{OtpValidate}, "/validate"},
43 []Middleware{JwtAuth, UserConfirmed, OtpAuth},
45 {"GET", []gin.HandlerFunc{GetMarketConfig}, "/:name"},
46 {"POST", []gin.HandlerFunc{UpdateMarketConfig}, "/:name/update"},
47 {"GET", []gin.HandlerFunc{TestMarketCredentials}, "/:name/test-credentials"},
48 {"GET", []gin.HandlerFunc{GetPortfolio}, "/:name/portfolio"},
53 []Middleware{JwtAuth, UserConfirmed, OtpAuth},
55 {"GET", []gin.HandlerFunc{UserAccount}, "/account"},
60 []Middleware{JwtAuth, UserConfirmed, UserIsAdmin, OtpAuth},
62 {"GET", []gin.HandlerFunc{AdminGetAllPortfolios}, "/portfolios"},
67 func Signup(c *gin.Context) {
68 query := &SignupQuery{}
70 query.In.Email = c.PostForm("email")
71 query.In.Password = c.PostForm("password")
76 func Signin(c *gin.Context) {
77 query := &SigninQuery{}
79 query.In.Email = c.PostForm("email")
80 query.In.Password = c.PostForm("password")
85 func OtpValidate(c *gin.Context) {
86 query := &OtpValidateQuery{}
88 query.In.Pass = c.PostForm("pass")
89 query.In.User = GetUser(c)
90 query.In.Claims = GetClaims(c)
95 func OtpEnrollment(c *gin.Context) {
96 query := &OtpEnrollmentQuery{}
98 query.In.User = GetUser(c)
100 qrPng, secret, err := query.Run()
102 WriteJsonResponse(ErrorResponse(err.Code, err.UserMessage), c)
107 if c.Query("format") == "png" {
108 c.Header("X-OTP-Secret", secret)
109 WriteBinary("image/png", qrPng.Bytes(), c)
112 Base64img string `json:"base64img"`
113 OtpSecret string `json:"secret"`
115 base64.StdEncoding.EncodeToString(qrPng.Bytes()),
119 WriteJsonResponse(SuccessResponse(response), c)
124 func GetMarketConfig(c *gin.Context) {
125 query := &MarketConfigQuery{}
127 query.In.User = GetUser(c)
128 query.In.Market = c.Param("name")
133 func TestMarketCredentials(c *gin.Context) {
134 query := &TestMarketCredentialsQuery{}
136 query.In.User = GetUser(c)
137 query.In.Market = c.Param("name")
142 func GetPortfolio(c *gin.Context) {
143 query := &GetPortfolioQuery{}
145 query.In.User = GetUser(c)
146 query.In.Market = c.Param("name")
151 func UpdateMarketConfig(c *gin.Context) {
152 query := &UpdateMarketConfigQuery{}
154 query.In.User = GetUser(c)
155 query.In.Market = c.Param("name")
156 query.In.Key = c.PostForm("key")
157 query.In.Secret = c.PostForm("secret")
162 func PasswordReset(c *gin.Context) {
163 query := &PasswordResetQuery{}
165 query.In.Email = c.PostForm("email")
170 func ChangePassword(c *gin.Context) {
171 query := &ChangePasswordQuery{}
173 query.In.Token = c.PostForm("token")
174 query.In.Password = c.PostForm("password")
179 func ConfirmEmail(c *gin.Context) {
180 query := &ConfirmEmailQuery{}
182 query.In.Token = c.PostForm("token")
187 func UserAccount(c *gin.Context) {
188 query := &UserAccountQuery{}
190 query.In.User = GetUser(c)
195 func AdminGetAllPortfolios(c *gin.Context) {
196 query := &GetAllPortfoliosQuery{}
198 query.In.Market = "poloniex"