getBlock and getAllBlocks successfully returning values to API

This commit is contained in:
Dustin Brickwood 2018-04-20 17:00:45 -04:00
parent d989e42827
commit 668287603e
2 changed files with 40 additions and 31 deletions

View file

@ -3,7 +3,6 @@ package main
///@NOTE Shyft handler functions when endpoints are hit ///@NOTE Shyft handler functions when endpoints are hit
import ( import (
"database/sql" "database/sql"
"encoding/json"
"fmt" "fmt"
"net/http" "net/http"
@ -65,23 +64,17 @@ func GetBlock(w http.ResponseWriter, r *http.Request) {
return return
} }
block3 := shyftdb.GetBlock(blockExplorerDb) getBlockResponse := shyftdb.GetBlock(blockExplorerDb)
if err != nil { if err != nil {
http.Error(w, err.Error(), 500) http.Error(w, err.Error(), 500)
return return
} }
out, err := json.Marshal(block3)
if err != nil {
http.Error(w, err.Error(), 500)
return
}
w.Header().Set("Content-Type", "application/json; charset=UTF-8") w.Header().Set("Content-Type", "application/json; charset=UTF-8")
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)
fmt.Fprintln(w, "block", string(out)) fmt.Fprintln(w, "block", getBlockResponse)
} }
// GetAllBlocks response // GetAllBlocks response
@ -100,12 +93,6 @@ func GetAllBlocks(w http.ResponseWriter, r *http.Request) {
return return
} }
// out, err := json.Marshal(block3)
// if err != nil {
// http.Error(w, err.Error(), 500)
// return
// }
w.Header().Set("Content-Type", "application/json; charset=UTF-8") w.Header().Set("Content-Type", "application/json; charset=UTF-8")
w.WriteHeader(http.StatusOK) w.WriteHeader(http.StatusOK)

View file

@ -21,14 +21,14 @@ import (
type SBlock struct { type SBlock struct {
hash string hash string
coinbase string coinbase string
number int number string
} }
//blockRes struct //blockRes struct
type blockRes struct { type blockRes struct {
hash string hash string
coinbase string coinbase string
number int number string
Blocks []SBlock Blocks []SBlock
} }
@ -287,7 +287,7 @@ func GetAllBlocks(sqldb *sql.DB) []SBlock {
defer rows.Close() defer rows.Close()
for rows.Next() { for rows.Next() {
var num int var num string
var hash string var hash string
var coinbase string var coinbase string
err = rows.Scan( err = rows.Scan(
@ -301,35 +301,57 @@ func GetAllBlocks(sqldb *sql.DB) []SBlock {
coinbase: coinbase, coinbase: coinbase,
}) })
} }
fmt.Println("++++++++++++++++", arr.Blocks)
return arr.Blocks return arr.Blocks
} }
//GetBlock queries to send single block info //GetBlock queries to send single block info
//TODO provide blockHash arg passed from handler.go //TODO provide blockHash arg passed from handler.go
func GetBlock(sqldb *sql.DB) []SBlock { func GetBlock(sqldb *sql.DB) []SBlock {
var block []SBlock var arr blockRes
var number string
var hash string
var coinbase string
sqlStatement := `SELECT * FROM blocks WHERE number=$1;` sqlStatement := `SELECT * FROM blocks WHERE number=$1;`
row := sqldb.QueryRow(sqlStatement, 3) row := sqldb.QueryRow(sqlStatement, 3)
err := row.Scan(&number, &hash, &coinbase) var num string
var hash string
var coinbase string
err := row.Scan(&num, &hash, &coinbase)
switch err { switch err {
case sql.ErrNoRows: case sql.ErrNoRows:
fmt.Println("No rows were returned") fmt.Println("No rows were returned!")
return block
case nil: case nil:
fmt.Println("nil") fmt.Println(row)
default: default:
panic(err) panic(err)
} }
fmt.Println("this is a query", row) arr.Blocks = append(arr.Blocks, SBlock{
return block hash: hash,
number: num,
coinbase: coinbase,
})
return arr.Blocks
} }
// []SBlock {
// var block []SBlock
// var number string
// var hash string
// var coinbase string
// sqlStatement := `SELECT * FROM blocks WHERE number=$1;`
// row := sqldb.QueryRow(sqlStatement, 3)
// err := row.Scan(&number, &hash, &coinbase)
// switch err {
// case sql.ErrNoRows:
// fmt.Println("No rows were returned")
// return block
// case nil:
// fmt.Println("nil")
// default:
// panic(err)
// }
// fmt.Println("this is a query", row)
// return block
func GetAllTransactions(db *leveldb.DB) []ShyftTxEntryPretty { func GetAllTransactions(db *leveldb.DB) []ShyftTxEntryPretty {
var txs []ShyftTxEntryPretty var txs []ShyftTxEntryPretty
iter := db.NewIterator(util.BytesPrefix([]byte("tx-")), nil) iter := db.NewIterator(util.BytesPrefix([]byte("tx-")), nil)