kaspad/apiserver/main.go
Ori Newman ae25ec2e6b [NOD-303] Implement get transaction by id for api server (#391)
* [NOD-303] Implement get transaction by id for api server

* [NOD-303] Make routeParamTxID a constant

* [NOD-303] Change database is not current error.

* [NOD-303] Add ID to TransactionInput and TransactionOutput models

* [NOD-303] Change transactions_outputs table name to transaction_outputs and transactions_inputs to transaction_inputs

* [NOD-303] Add json annotations to transaction response types

* [NOD-303] Split server package

* [NOD-303] Add GetTransactionByHashHandler

* [NOD-303] Add comments to exported functions and variables

* [NOD-303] Put response types in a separate file

* [NOD-303] Rename functions
2019-09-03 15:54:59 +03:00

53 lines
1.2 KiB
Go

package main
import (
"fmt"
"github.com/daglabs/btcd/apiserver/config"
"github.com/daglabs/btcd/apiserver/database"
"github.com/daglabs/btcd/apiserver/server"
"github.com/daglabs/btcd/logger"
"github.com/daglabs/btcd/signal"
"github.com/daglabs/btcd/util/panics"
_ "github.com/golang-migrate/migrate/v4/database/mysql"
_ "github.com/golang-migrate/migrate/v4/source/file"
_ "github.com/jinzhu/gorm/dialects/mysql"
)
func main() {
defer panics.HandlePanic(log, logger.BackendLog)
cfg, err := config.Parse()
if err != nil {
panic(fmt.Errorf("Error parsing command-line arguments: %s", err))
}
err = database.Connect(cfg)
if err != nil {
panic(fmt.Errorf("Error connecting to database: %s", err))
}
defer func() {
err := database.DB.Close()
if err != nil {
panic(fmt.Errorf("Error closing the database: %s", err))
}
}()
client, err := connectToServer(cfg)
if err != nil {
panic(fmt.Errorf("Error connecting to servers: %s", err))
}
shutdownServer := server.Start(cfg.HTTPListen)
defer func() {
shutdownServer()
disconnectFromNode(client)
}()
interrupt := signal.InterruptListener()
<-interrupt
}
func disconnectFromNode(client *apiServerClient) {
log.Infof("Disconnecting client")
client.Disconnect()
}