mirror of
https://github.com/kaspanet/kaspad.git
synced 2025-06-07 22:56:41 +00:00

* [NOD-350] Implement testnet faucet * [NOD-350] Add JSON annotations to api server response types * [NOD-350] Fix IP check query, update IP usage with upsert, and make IP a primary key * [NOD-377] Remove redundant float conversion * [NOD-377] Change not current database error message * [NOD-377] change API route from /money_request to /request_money * [NOD-377] Add a constant for 24 hours * [NOD-377] Remove redundant call for getWalletUTXOSet() * [NOD-377] Condition refactoring * [NOD-377] Fix POST request to API server content type * [NOD-350] Rename day -> timeBetweenRequests * [NOD-377] Rename timeBetweenRequests -> minRequestInterval, timeBefore24Hours -> minRequestInterval * [NOD-350] Rename file responsetypes -> response_types * [NOD-350] Rename convertTxModelToTxResponse -> convertTxDBModelToTxResponse * [NOD-350] Explicitly select blue_score in fetchSelectedTipBlueScore * [NOD-350] Refactor and add comments * [NOD-350] Make calcFee use MassPerTxByte * [NOD-350] Convert IP column to varchar(39) to allow ipv6 addresses * [NOD-350] Add comments to isFundedAndIsChangeOutputRequired * [NOD-350] Remove approximateConfirmationsForCoinbaseMaturity * [NOD-350] Fix comments
41 lines
982 B
Go
41 lines
982 B
Go
package server
|
|
|
|
import (
|
|
"context"
|
|
"github.com/daglabs/btcd/httpserverutils"
|
|
"net/http"
|
|
"time"
|
|
|
|
"github.com/gorilla/handlers"
|
|
"github.com/gorilla/mux"
|
|
)
|
|
|
|
const gracefulShutdownTimeout = 30 * time.Second
|
|
|
|
// Start starts the HTTP REST server and returns a
|
|
// function to gracefully shutdown it.
|
|
func Start(listenAddr string) func() {
|
|
router := mux.NewRouter()
|
|
router.Use(httpserverutils.AddRequestMetadataMiddleware)
|
|
router.Use(httpserverutils.RecoveryMiddleware)
|
|
router.Use(httpserverutils.LoggingMiddleware)
|
|
router.Use(httpserverutils.SetJSONMiddleware)
|
|
addRoutes(router)
|
|
httpServer := &http.Server{
|
|
Addr: listenAddr,
|
|
Handler: handlers.CORS()(router),
|
|
}
|
|
spawn(func() {
|
|
log.Errorf("%s", httpServer.ListenAndServe())
|
|
})
|
|
|
|
return func() {
|
|
ctx, cancel := context.WithTimeout(context.Background(), gracefulShutdownTimeout)
|
|
defer cancel()
|
|
err := httpServer.Shutdown(ctx)
|
|
if err != nil {
|
|
log.Errorf("Error shutting down HTTP server: %s", err)
|
|
}
|
|
}
|
|
}
|