コード例 #1
0
ファイル: models.go プロジェクト: jaekwon/ftnox-backend
func SaveAddress(addr *Address) (*Address, error) {
	_, err := db.Exec(
		`INSERT INTO address (`+AddressModel.FieldsInsert+`)
         VALUES (`+AddressModel.Placeholders+`)`,
		addr,
	)
	return addr, err
}
コード例 #2
0
ファイル: models.go プロジェクト: jaekwon/ftnox-backend
func UpdateUserSetTOTPConfirmed(userId int64) {
	_, err := db.Exec(
		`UPDATE auth_user
         SET totp_conf=1
         WHERE id=?`,
		userId,
	)
	if err != nil {
		panic(err)
	}
}
コード例 #3
0
ファイル: models.go プロジェクト: jaekwon/ftnox-backend
func UpdateUserSetEmailConfirmed(emailCode string) {
	_, err := db.Exec(
		`UPDATE auth_user
         SET email_conf=1
         WHERE email_code=?`,
		emailCode,
	)
	if err != nil {
		panic(err)
	}
}
コード例 #4
0
ファイル: models.go プロジェクト: jaekwon/ftnox-backend
func SaveBlock(b *Block) *Block {
	if b.Time == 0 {
		b.Time = time.Now().Unix()
	}
	_, err := db.Exec(
		`INSERT INTO block (`+BlockModel.FieldsInsert+`)
         VALUES (`+BlockModel.Placeholders+`)`,
		b,
	)
	if err != nil {
		panic(err)
	}
	return b
}
コード例 #5
0
ファイル: beta.go プロジェクト: jaekwon/ftnox-backend
func SaveBetaSignup(signup *BetaSignup) *BetaSignup {
	if signup.Time == 0 {
		signup.Time = time.Now().Unix()
	}
	_, err := db.Exec(
		`INSERT INTO beta_signup (`+BetaSignupModel.FieldsInsert+`)
         VALUES (`+BetaSignupModel.Placeholders+`)`,
		signup,
	)
	if err != nil {
		panic(err)
	}
	return signup
}
コード例 #6
0
ファイル: kvstore.go プロジェクト: jaekwon/ftnox-backend
func Set(key, value string) {
	_, err := db.Exec(
		`INSERT INTO kvstore (key_, value)
         VALUES (?, ?)`,
		key, value,
	)
	switch db.GetErrorType(err) {
	case nil:
		return
	case db.ERR_DUPLICATE_ENTRY:
		// Update instead
		_, err := db.Exec(
			`UPDATE kvstore SET value=? WHERE key=?`,
			value, key,
		)
		if err != nil {
			panic(err)
		}
		return
	default:
		panic(err)
	}
}
コード例 #7
0
ファイル: models.go プロジェクト: jaekwon/ftnox-backend
func UpdateBlockStatus(hash string, oldStatus, newStatus uint32) {
	now := time.Now().Unix()
	res, err := db.Exec(
		`UPDATE block
         SET status=?, updated=?
         WHERE status=? AND hash=?`,
		newStatus, now, oldStatus, hash,
	)
	if err != nil {
		panic(err)
	}
	count, err := res.RowsAffected()
	if int(count) != 1 {
		panic(NewError("Expected to update 1 block's status, but none changed"))
	}
	if err != nil {
		panic(err)
	}
}
コード例 #8
0
func TestPriceLog(t *testing.T) {
	logger := &PriceLogger{Market: RandId(12)}
	logger.Initialize()

	defer func() {
		db.Exec(`
             DELETE FROM exchange_price_log
             WHERE market=?`,
			logger.Market,
		)
	}()

	// Add some entries.
	//             Type, Amount,  Price,  Time
	logger.AddTrade("B", 100, 100, 0) // Minute 0
	logger.AddTrade("B", 100, 99, 10)
	logger.AddTrade("B", 100, 102, 20)

	prices := logger.LoadPrices(60*1, 0, 60*1)
	if len(prices) != 0 {
		t.Fatalf("Expected 0 prices, got %v", len(prices))
	}
	prices = logger.LoadPrices(60*5, 0, 60*5)
	if len(prices) != 0 {
		t.Fatalf("Expected 0 prices, got %v", len(prices))
	}

	logger.AddTrade("B", 100, 105, 60) // Minute 1

	prices = logger.LoadPrices(60*1, 0, 60*1)
	if len(prices) != 1 {
		t.Fatalf("Expected 1 prices, got %v", len(prices))
	}
	checkPlog(t, prices[0], 99, 102, 100, 102, 0, 300)

	logger.AddTrade("B", 100, 104, 60*2) // Minute 2

	prices = logger.LoadPrices(60*1, 0, 60*2)
	if len(prices) != 2 {
		t.Fatalf("Expected 2 prices, got %v", len(prices))
	}
	checkPlog(t, prices[0], 99, 102, 100, 102, 0, 300)
	checkPlog(t, prices[1], 105, 105, 105, 105, 0, 100)
	prices = logger.LoadPrices(60*5, 0, 60*5)
	if len(prices) != 1 {
		t.Fatalf("Expected 1 prices, got %v", len(prices))
	}

	logger.AddTrade("B", 100, 100, 60*6) // Minute 6

	prices = logger.LoadPrices(60*1, 0, 60*6)
	if len(prices) != 3 {
		t.Fatalf("Expected 3 prices, got %v", len(prices))
	}
	checkPlog(t, prices[0], 99, 102, 100, 102, 0, 300)
	checkPlog(t, prices[1], 105, 105, 105, 105, 0, 100)
	checkPlog(t, prices[2], 104, 104, 104, 104, 0, 100)
	prices = logger.LoadPrices(60*5, 0, 60*5)
	if len(prices) != 1 {
		t.Fatalf("Expected 1 prices, got %v", len(prices))
	}
	checkPlog(t, prices[0], 99, 105, 100, 104, 0, 500)
}