本文整理汇总了Golang中app/models.UserBalance类的典型用法代码示例。如果您正苦于以下问题:Golang UserBalance类的具体用法?Golang UserBalance怎么用?Golang UserBalance使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了UserBalance类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: addAmount
// add amount to user balance
func (d *UserBalanceController) addAmount() {
var input InputRequest
var model = new(models.UserBalance)
debug, _ := conf.AppConfig.Bool("debug")
defer LogErr()
body, error := ioutil.ReadAll(d.Request.Body)
error = json.Unmarshal(body, &input)
if debug {
Log.WithField("request", string(body)).Printf("deposit")
}
if error != nil {
Log.WithField("error", error).Printf("read body or json error")
}
if input.UserId == 0 || input.Amount == 0 {
d.makeIncorrectRequestParamsReponse("User and Amount params is required")
return
}
model = model.GetById(input.UserId)
if model.Id == 0 {
model = models.CreateUserBalance(input.UserId, input.Amount, "")
} else {
model.AddAmount(input.Amount)
}
d.ResponseWriter(d.Request, d.Response, "")
return
}
示例2: getBalance
// get balance bu uid
func (d *UserBalanceController) getBalance() {
var model = new(models.UserBalance)
var userId int
debug, _ := conf.AppConfig.Bool("debug")
defer LogErr()
request := d.Request.URL.Query()
userIdString := request.Get("user")
userId, _ = strconv.Atoi(userIdString)
if debug {
Log.WithField("request", request).Printf("balance", userIdString)
}
if userId == 0 {
d.makeIncorrectRequestParamsReponse("user param is required")
return
}
model = model.GetById(userId)
if model.Id != 0 {
resp := &BalanceResponse{
Balance: model.Balance,
}
d.ResponseWriter(d.Request, d.Response, resp)
} else {
d.makeNotFound("balance.not_found", "User not found")
return
}
return
}
示例3: transferAmount
// transfer amount from between users balance
func (d *UserBalanceController) transferAmount() {
var input InputRequest
var from = new(models.UserBalance)
var to = new(models.UserBalance)
debug, _ := conf.AppConfig.Bool("debug")
defer LogErr()
body, error := ioutil.ReadAll(d.Request.Body)
error = json.Unmarshal(body, &input)
if debug {
Log.WithField("request", string(body)).Printf("transfer - %+v", input)
}
if error != nil {
Log.WithField("error", error).Printf("read body or json error")
}
if input.FromUid == 0 || input.Amount == 0 || input.ToUid == 0 {
d.makeIncorrectRequestParamsReponse("From, To and Amount params is required")
return
}
from = from.GetById(input.FromUid)
to = to.GetById(input.ToUid)
if from.Id == 0 || to.Id == 0 {
d.makeNotFound("balance.not_found", "User not found")
return
}
from.WithdrawAmount(input.Amount)
to.AddAmount(input.Amount)
d.ResponseWriter(d.Request, d.Response, "")
return
}
示例4: TestDepositeNew
func TestDepositeNew(t *testing.T) {
DeleteMockDataModel(101)
conf.AppConfig.Set("enable_gzip", true)
b := bytes.NewBufferString(`{"user":101, "amount":100}`)
r, _ := http.NewRequest("POST", "/deposite", b)
r.Header.Add("Accept-Encoding", "deflate, gzip")
w := httptest.NewRecorder()
var reader io.ReadCloser
router := httprouter.New()
router.POST("/deposite", controllers.AddAmount)
router.ServeHTTP(w, r)
var responseText string
switch w.Header().Get("Content-Encoding") {
case "gzip":
reader, _ = gzip.NewReader(w.Body)
var uncompressed []byte
uncompressed, _ = ioutil.ReadAll(reader)
responseText = string(uncompressed)
defer reader.Close()
default:
responseText = w.Body.String()
}
log.Printf("\n response == ", responseText, w.Header().Get("Content-Encoding"))
var model = new(models.UserBalance)
model = model.GetById(101)
Convey("Subject: Test Deposite \n", t, func() {
Convey("Status Code Should Be 200", func() {
So(w.Code, ShouldEqual, 200)
})
Convey("Db record must be exists", func() {
So(model.Balance, ShouldEqual, 100)
So(model.Id, ShouldEqual, 101)
})
})
}
示例5: TestTransfer
func TestTransfer(t *testing.T) {
var model = new(models.UserBalance)
var model2 = new(models.UserBalance)
AddMockDataModel(101, 100)
AddMockDataModel(205, 100)
conf.AppConfig.Set("enable_gzip", true)
b := bytes.NewBufferString(`{"from":101, "to":205,"amount":25}`)
r, _ := http.NewRequest("POST", "/transfer", b)
r.Header.Add("Accept-Encoding", "deflate, gzip")
w := httptest.NewRecorder()
var reader io.ReadCloser
router := httprouter.New()
router.POST("/transfer", controllers.TransferAmount)
router.ServeHTTP(w, r)
var responseText string
switch w.Header().Get("Content-Encoding") {
case "gzip":
reader, _ = gzip.NewReader(w.Body)
var uncompressed []byte
uncompressed, _ = ioutil.ReadAll(reader)
responseText = string(uncompressed)
defer reader.Close()
default:
responseText = w.Body.String()
}
log.Printf("\n response == ", responseText, w.Header().Get("Content-Encoding"))
modelFrom := model.GetById(101)
modelTo := model2.GetById(205)
Convey("Subject: Test Transfer \n", t, func() {
Convey("Status Code Should Be 200", func() {
So(w.Code, ShouldEqual, 200)
})
Convey("Db record from balance must equals to 75", func() {
So(modelFrom.Balance, ShouldEqual, 75)
})
Convey("Db record to balance must equals to 125", func() {
So(modelTo.Balance, ShouldEqual, 125)
})
})
}