Use constants for web context keys.
This commit is contained in:
parent
6acc5be10c
commit
b1a68a94fe
@ -47,11 +47,11 @@ type searchResult struct {
|
||||
}
|
||||
|
||||
func dcrdStatus(c *gin.Context) DcrdStatus {
|
||||
hostname := c.MustGet("DcrdHostname").(string)
|
||||
hostname := c.MustGet(dcrdHostKey).(string)
|
||||
status := DcrdStatus{Host: hostname}
|
||||
|
||||
dcrdClient := c.MustGet("DcrdClient").(*rpc.DcrdRPC)
|
||||
dcrdErr := c.MustGet("DcrdClientErr")
|
||||
dcrdClient := c.MustGet(dcrdKey).(*rpc.DcrdRPC)
|
||||
dcrdErr := c.MustGet(dcrdErrorKey)
|
||||
if dcrdErr != nil {
|
||||
log.Errorf("could not get dcrd client: %v", dcrdErr.(error))
|
||||
return status
|
||||
@ -72,8 +72,8 @@ func dcrdStatus(c *gin.Context) DcrdStatus {
|
||||
}
|
||||
|
||||
func walletStatus(c *gin.Context) map[string]WalletStatus {
|
||||
walletClients := c.MustGet("WalletClients").([]*rpc.WalletRPC)
|
||||
failedWalletClients := c.MustGet("FailedWalletClients").([]string)
|
||||
walletClients := c.MustGet(walletsKey).([]*rpc.WalletRPC)
|
||||
failedWalletClients := c.MustGet(failedWalletsKey).([]string)
|
||||
|
||||
walletStatus := make(map[string]WalletStatus)
|
||||
for _, v := range walletClients {
|
||||
@ -236,7 +236,7 @@ func downloadDatabaseBackup(c *gin.Context) {
|
||||
// setAdminStatus stores the authentication status of the current session and
|
||||
// redirects the client to GET /admin.
|
||||
func setAdminStatus(admin interface{}, c *gin.Context) {
|
||||
session := c.MustGet("session").(*sessions.Session)
|
||||
session := c.MustGet(sessionKey).(*sessions.Session)
|
||||
session.Values["admin"] = admin
|
||||
err := session.Save(c.Request, c.Writer)
|
||||
if err != nil {
|
||||
|
||||
@ -72,17 +72,17 @@ func feeAddress(c *gin.Context) {
|
||||
const funcName = "feeAddress"
|
||||
|
||||
// Get values which have been added to context by middleware.
|
||||
ticket := c.MustGet("Ticket").(database.Ticket)
|
||||
knownTicket := c.MustGet("KnownTicket").(bool)
|
||||
commitmentAddress := c.MustGet("CommitmentAddress").(string)
|
||||
dcrdClient := c.MustGet("DcrdClient").(*rpc.DcrdRPC)
|
||||
dcrdErr := c.MustGet("DcrdClientErr")
|
||||
ticket := c.MustGet(ticketKey).(database.Ticket)
|
||||
knownTicket := c.MustGet(knownTicketKey).(bool)
|
||||
commitmentAddress := c.MustGet(commitmentAddressKey).(string)
|
||||
dcrdClient := c.MustGet(dcrdKey).(*rpc.DcrdRPC)
|
||||
dcrdErr := c.MustGet(dcrdErrorKey)
|
||||
if dcrdErr != nil {
|
||||
log.Errorf("%s: could not get dcrd client: %v", funcName, dcrdErr.(error))
|
||||
sendError(errInternalError, c)
|
||||
return
|
||||
}
|
||||
reqBytes := c.MustGet("RequestBytes").([]byte)
|
||||
reqBytes := c.MustGet(requestBytesKey).([]byte)
|
||||
|
||||
if cfg.VspClosed {
|
||||
sendError(errVspClosed, c)
|
||||
|
||||
@ -49,7 +49,7 @@ func withSession(store *sessions.CookieStore) gin.HandlerFunc {
|
||||
}
|
||||
}
|
||||
|
||||
c.Set("session", session)
|
||||
c.Set(sessionKey, session)
|
||||
}
|
||||
}
|
||||
|
||||
@ -57,7 +57,7 @@ func withSession(store *sessions.CookieStore) gin.HandlerFunc {
|
||||
// authenticated as an admin, otherwise it will render the login template.
|
||||
func requireAdmin() gin.HandlerFunc {
|
||||
return func(c *gin.Context) {
|
||||
session := c.MustGet("session").(*sessions.Session)
|
||||
session := c.MustGet(sessionKey).(*sessions.Session)
|
||||
admin := session.Values["admin"]
|
||||
|
||||
if admin == nil {
|
||||
@ -78,9 +78,9 @@ func withDcrdClient(dcrd rpc.DcrdConnect) gin.HandlerFunc {
|
||||
client, hostname, err := dcrd.Client(c, cfg.NetParams)
|
||||
// Don't handle the error here, add it to the context and let downstream
|
||||
// handlers decide what to do with it.
|
||||
c.Set("DcrdClient", client)
|
||||
c.Set("DcrdHostname", hostname)
|
||||
c.Set("DcrdClientErr", err)
|
||||
c.Set(dcrdKey, client)
|
||||
c.Set(dcrdHostKey, hostname)
|
||||
c.Set(dcrdErrorKey, err)
|
||||
}
|
||||
}
|
||||
|
||||
@ -96,8 +96,8 @@ func withWalletClients(wallets rpc.WalletConnect) gin.HandlerFunc {
|
||||
log.Errorf("Failed to connect to %d wallet(s), proceeding with only %d",
|
||||
len(failedConnections), len(clients))
|
||||
}
|
||||
c.Set("WalletClients", clients)
|
||||
c.Set("FailedWalletClients", failedConnections)
|
||||
c.Set(walletsKey, clients)
|
||||
c.Set(failedWalletsKey, failedConnections)
|
||||
}
|
||||
}
|
||||
|
||||
@ -176,8 +176,8 @@ func broadcastTicket() gin.HandlerFunc {
|
||||
parentHash := parentTx.TxHash()
|
||||
|
||||
// Check if local dcrd already knows the parent tx.
|
||||
dcrdClient := c.MustGet("DcrdClient").(*rpc.DcrdRPC)
|
||||
dcrdErr := c.MustGet("DcrdClientErr")
|
||||
dcrdClient := c.MustGet(dcrdKey).(*rpc.DcrdRPC)
|
||||
dcrdErr := c.MustGet(dcrdErrorKey)
|
||||
if dcrdErr != nil {
|
||||
log.Errorf("%s: could not get dcrd client: %v", funcName, dcrdErr.(error))
|
||||
sendError(errInternalError, c)
|
||||
@ -273,7 +273,7 @@ func vspAuth() gin.HandlerFunc {
|
||||
|
||||
// Add request bytes to request context for downstream handlers to reuse.
|
||||
// Necessary because the request body reader can only be used once.
|
||||
c.Set("RequestBytes", reqBytes)
|
||||
c.Set(requestBytesKey, reqBytes)
|
||||
|
||||
// Parse request and ensure there is a ticket hash included.
|
||||
var request struct {
|
||||
@ -316,8 +316,8 @@ func vspAuth() gin.HandlerFunc {
|
||||
if ticketFound {
|
||||
commitmentAddress = ticket.CommitmentAddress
|
||||
} else {
|
||||
dcrdClient := c.MustGet("DcrdClient").(*rpc.DcrdRPC)
|
||||
dcrdErr := c.MustGet("DcrdClientErr")
|
||||
dcrdClient := c.MustGet(dcrdKey).(*rpc.DcrdRPC)
|
||||
dcrdErr := c.MustGet(dcrdErrorKey)
|
||||
if dcrdErr != nil {
|
||||
log.Errorf("%s: could not get dcrd client: %v", funcName, dcrdErr.(error))
|
||||
sendError(errInternalError, c)
|
||||
@ -378,9 +378,9 @@ func vspAuth() gin.HandlerFunc {
|
||||
|
||||
// Add ticket information to context so downstream handlers don't need
|
||||
// to access the db for it.
|
||||
c.Set("Ticket", ticket)
|
||||
c.Set("KnownTicket", ticketFound)
|
||||
c.Set("CommitmentAddress", commitmentAddress)
|
||||
c.Set(ticketKey, ticket)
|
||||
c.Set(knownTicketKey, ticketFound)
|
||||
c.Set(commitmentAddressKey, commitmentAddress)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -24,16 +24,16 @@ func payFee(c *gin.Context) {
|
||||
const funcName = "payFee"
|
||||
|
||||
// Get values which have been added to context by middleware.
|
||||
ticket := c.MustGet("Ticket").(database.Ticket)
|
||||
knownTicket := c.MustGet("KnownTicket").(bool)
|
||||
dcrdClient := c.MustGet("DcrdClient").(*rpc.DcrdRPC)
|
||||
dcrdErr := c.MustGet("DcrdClientErr")
|
||||
ticket := c.MustGet(ticketKey).(database.Ticket)
|
||||
knownTicket := c.MustGet(knownTicketKey).(bool)
|
||||
dcrdClient := c.MustGet(dcrdKey).(*rpc.DcrdRPC)
|
||||
dcrdErr := c.MustGet(dcrdErrorKey)
|
||||
if dcrdErr != nil {
|
||||
log.Errorf("%s: could not get dcrd client: %v", funcName, dcrdErr.(error))
|
||||
sendError(errInternalError, c)
|
||||
return
|
||||
}
|
||||
reqBytes := c.MustGet("RequestBytes").([]byte)
|
||||
reqBytes := c.MustGet(requestBytesKey).([]byte)
|
||||
|
||||
if cfg.VspClosed {
|
||||
sendError(errVspClosed, c)
|
||||
|
||||
@ -31,14 +31,14 @@ func setAltSig(c *gin.Context) {
|
||||
const funcName = "setAltSig"
|
||||
|
||||
// Get values which have been added to context by middleware.
|
||||
dcrdClient := c.MustGet("DcrdClient").(Node)
|
||||
dcrdErr := c.MustGet("DcrdClientErr")
|
||||
dcrdClient := c.MustGet(dcrdKey).(Node)
|
||||
dcrdErr := c.MustGet(dcrdErrorKey)
|
||||
if dcrdErr != nil {
|
||||
log.Errorf("%s: could not get dcrd client: %v", funcName, dcrdErr.(error))
|
||||
sendError(errInternalError, c)
|
||||
return
|
||||
}
|
||||
reqBytes := c.MustGet("RequestBytes").([]byte)
|
||||
reqBytes := c.MustGet(requestBytesKey).([]byte)
|
||||
|
||||
if cfg.VspClosed {
|
||||
sendError(errVspClosed, c)
|
||||
|
||||
@ -220,9 +220,9 @@ func TestSetAltSig(t *testing.T) {
|
||||
}
|
||||
|
||||
handle := func(c *gin.Context) {
|
||||
c.Set("DcrdClient", tNode)
|
||||
c.Set("DcrdClientErr", dcrdErr)
|
||||
c.Set("RequestBytes", b[test.deformReq:])
|
||||
c.Set(dcrdKey, tNode)
|
||||
c.Set(dcrdErrorKey, dcrdErr)
|
||||
c.Set(requestBytesKey, b[test.deformReq:])
|
||||
setAltSig(c)
|
||||
}
|
||||
|
||||
|
||||
@ -20,10 +20,10 @@ func setVoteChoices(c *gin.Context) {
|
||||
const funcName = "setVoteChoices"
|
||||
|
||||
// Get values which have been added to context by middleware.
|
||||
ticket := c.MustGet("Ticket").(database.Ticket)
|
||||
knownTicket := c.MustGet("KnownTicket").(bool)
|
||||
walletClients := c.MustGet("WalletClients").([]*rpc.WalletRPC)
|
||||
reqBytes := c.MustGet("RequestBytes").([]byte)
|
||||
ticket := c.MustGet(ticketKey).(database.Ticket)
|
||||
knownTicket := c.MustGet(knownTicketKey).(bool)
|
||||
walletClients := c.MustGet(walletsKey).([]*rpc.WalletRPC)
|
||||
reqBytes := c.MustGet(requestBytesKey).([]byte)
|
||||
|
||||
// If we cannot set the vote choices on at least one voting wallet right
|
||||
// now, don't update the database, just return an error.
|
||||
|
||||
@ -17,9 +17,9 @@ func ticketStatus(c *gin.Context) {
|
||||
const funcName = "ticketStatus"
|
||||
|
||||
// Get values which have been added to context by middleware.
|
||||
ticket := c.MustGet("Ticket").(database.Ticket)
|
||||
knownTicket := c.MustGet("KnownTicket").(bool)
|
||||
reqBytes := c.MustGet("RequestBytes").([]byte)
|
||||
ticket := c.MustGet(ticketKey).(database.Ticket)
|
||||
knownTicket := c.MustGet(knownTicketKey).(bool)
|
||||
reqBytes := c.MustGet(requestBytesKey).([]byte)
|
||||
|
||||
if !knownTicket {
|
||||
log.Warnf("%s: Unknown ticket (clientIP=%s)", funcName, c.ClientIP())
|
||||
|
||||
@ -49,6 +49,20 @@ const (
|
||||
feeAddressExpiration = 1 * time.Hour
|
||||
)
|
||||
|
||||
// Hard-coded keys used for storing values in the web context.
|
||||
const (
|
||||
sessionKey = "Session"
|
||||
dcrdKey = "DcrdClient"
|
||||
dcrdHostKey = "DcrdHostname"
|
||||
dcrdErrorKey = "DcrdClientErr"
|
||||
walletsKey = "WalletClients"
|
||||
failedWalletsKey = "FailedWalletClients"
|
||||
requestBytesKey = "RequestBytes"
|
||||
ticketKey = "Ticket"
|
||||
knownTicketKey = "KnownTicket"
|
||||
commitmentAddressKey = "CommitmentAddress"
|
||||
)
|
||||
|
||||
var cfg Config
|
||||
var db *database.VspDatabase
|
||||
var addrGen *addressGenerator
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user