Beispiel #1
0
func GetDepositsHandler(w http.ResponseWriter, r *http.Request, user *auth.User) {
    if !user.HasRole("treasury") { ReturnJSON(API_UNAUTHORIZED, UNAUTH_MSG) } // All handlers here should have this.

    limit :=    GetParamInt32(r, "limit")
    deposits := bitcoin.LoadPayments(uint(limit))
    ReturnJSON(API_OK, deposits)
}
Beispiel #2
0
func ResumeWithdrawalHandler(w http.ResponseWriter, r *http.Request, user *auth.User) {
    if !user.HasRole("treasury") { ReturnJSON(API_UNAUTHORIZED, UNAUTH_MSG) } // All handlers here should have this.

    wthId := GetParamInt64(r, "withdrawalId")
    account.ResumeWithdrawals([]interface{}{wthId})
    ReturnJSON(API_OK, nil)
}
Beispiel #3
0
func StorePrivateKeyHandler(w http.ResponseWriter, r *http.Request, user *auth.User) {
    if !user.HasRole("treasury") { ReturnJSON(API_UNAUTHORIZED, UNAUTH_MSG) } // All handlers here should have this.

    pubKey :=   GetParam(r, "pub_key")
    privKey :=  GetParam(r, "priv_key")
    StorePrivateKeyForMPKPubKey(pubKey, privKey)
    ReturnJSON(API_OK, nil)
}
Beispiel #4
0
func StaticHandler(w http.ResponseWriter, r *http.Request, user *auth.User) {
    if !user.HasRole("treasury") { ReturnJSON(API_UNAUTHORIZED, UNAUTH_MSG) } // All handlers here should have this.

	var path string
    if strings.HasPrefix(r.URL.Path, "/treasury") { path = r.URL.Path[9:] }
	if strings.HasSuffix(path, "/") {
		path = path + "index.html"
	} else {
		path = path
	}
	http.ServeFile(w, r, "static/treasury/"+path)
}
Beispiel #5
0
func GetWithdrawalsHandler(w http.ResponseWriter, r *http.Request, user *auth.User) {
    if !user.HasRole("treasury") { ReturnJSON(API_UNAUTHORIZED, UNAUTH_MSG) } // All handlers here should have this.

    coin :=     GetParamRegexp(r, "coin", RE_COIN,  false)
    limit :=    GetParamInt32(r, "limit")
    if coin == "" {
        withdrawals := account.LoadWithdrawals(uint(limit))
        ReturnJSON(API_OK, withdrawals)
    } else {
        withdrawals := account.LoadWithdrawalsByCoin(coin, uint(limit))
        ReturnJSON(API_OK, withdrawals)
    }
}
Beispiel #6
0
func GetSpendablePayments(w http.ResponseWriter, r *http.Request, user *auth.User) {
    if !user.HasRole("treasury") { ReturnJSON(API_UNAUTHORIZED, UNAUTH_MSG) } // All handlers here should have this.

    mpkId :=    GetParamInt64(r,  "mpk_id")
    coin :=     GetParamRegexp(r, "coin", RE_COIN,  false)
    min :=      GetParamUint64(r, "min")
    max :=      GetParamUint64(r, "max")
    limit :=    GetParamInt32(r,  "limit")

    reqHeight := bitcoin.ReqHeight(coin)

    payments := bitcoin.LoadSpendablePaymentsByAmount(mpkId, coin, min, max, reqHeight, uint(limit))

    ReturnJSON(API_OK, payments)
}
Beispiel #7
0
func CreditUserHandler(w http.ResponseWriter, r *http.Request, user *auth.User) {
    if !user.HasRole("treasury") { ReturnJSON(API_UNAUTHORIZED, UNAUTH_MSG) } // All handlers here should have this.

    coin :=     GetParamRegexp(r, "coin", RE_COIN,  true)
    email :=    GetParamRegexp(r, "email", RE_EMAIL, true)
    amountFloat :=  GetParamFloat64(r, "amountFloat")
    amount := F64ToUI64(amountFloat)

    target := auth.LoadUserByEmail(email)
    if target == nil { ReturnJSON(API_INVALID_PARAM, fmt.Sprintf("User with email %v doesn't exist", email)) }
    if amount == 0 { ReturnJSON(API_INVALID_PARAM, "Amount cannot be zero") }

    deposit := account.CreateDeposit(&account.Deposit{
        Type:       account.DEPOSIT_TYPE_FIAT,
        UserId:     target.Id,
        Wallet:     "main",
        Coin:       coin,
        Amount:     amount,
        Status:     account.DEPOSIT_STATUS_PENDING,
    })
    account.CreditDeposit(deposit)

    ReturnJSON(API_OK, nil)
}