mirror of
https://github.com/0ceanSlim/grain.git
synced 2024-11-21 16:17:13 +00:00
refactored ok and notice response
This commit is contained in:
parent
8c83d7333b
commit
7365ef5c11
@ -6,6 +6,7 @@ import (
|
||||
"fmt"
|
||||
"grain/relay/db"
|
||||
"grain/relay/handlers/kinds"
|
||||
"grain/relay/handlers/response"
|
||||
"grain/relay/utils"
|
||||
|
||||
relay "grain/relay/types"
|
||||
@ -45,7 +46,7 @@ func HandleEvent(ws *websocket.Conn, message []interface{}) {
|
||||
|
||||
func HandleKind(ctx context.Context, evt relay.Event, ws *websocket.Conn) {
|
||||
if !utils.CheckSignature(evt) {
|
||||
sendOK(ws, evt.ID, false, "invalid: signature verification failed")
|
||||
response.SendOK(ws, evt.ID, false, "invalid: signature verification failed")
|
||||
return
|
||||
}
|
||||
|
||||
@ -77,7 +78,7 @@ func HandleKind(ctx context.Context, evt relay.Event, ws *websocket.Conn) {
|
||||
}
|
||||
|
||||
if !rateLimiter.AllowEvent(evt.Kind, category) {
|
||||
sendOK(ws, evt.ID, false, fmt.Sprintf("rate limit exceeded for category: %s", category))
|
||||
response.SendOK(ws, evt.ID, false, fmt.Sprintf("rate limit exceeded for category: %s", category))
|
||||
return
|
||||
}
|
||||
|
||||
@ -107,10 +108,10 @@ func HandleKind(ctx context.Context, evt relay.Event, ws *websocket.Conn) {
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
sendOK(ws, evt.ID, false, fmt.Sprintf("error: %v", err))
|
||||
response.SendOK(ws, evt.ID, false, fmt.Sprintf("error: %v", err))
|
||||
return
|
||||
}
|
||||
|
||||
sendOK(ws, evt.ID, true, "")
|
||||
response.SendOK(ws, evt.ID, true, "")
|
||||
}
|
||||
|
||||
|
@ -3,6 +3,7 @@ package kinds
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"grain/relay/handlers/response"
|
||||
relay "grain/relay/types"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
@ -24,7 +25,7 @@ func HandleKind0(ctx context.Context, evt relay.Event, collection *mongo.Collect
|
||||
if err != mongo.ErrNoDocuments {
|
||||
if existingEvent.CreatedAt >= evt.CreatedAt {
|
||||
// If the existing event is newer or the same, respond with a NOTICE
|
||||
SendNotice(ws, evt.PubKey, "relay already has a newer kind 0 event for this pubkey")
|
||||
response.SendNotice(ws, evt.PubKey, "relay already has a newer kind 0 event for this pubkey")
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@ -2,12 +2,13 @@ package kinds
|
||||
|
||||
import (
|
||||
"context"
|
||||
"grain/relay/handlers/response"
|
||||
relay "grain/relay/types"
|
||||
|
||||
"golang.org/x/net/websocket"
|
||||
)
|
||||
|
||||
func HandleKind2Deprecated(ctx context.Context, evt relay.Event, ws *websocket.Conn) error {
|
||||
SendNotice(ws, evt.PubKey, "kind 2 is deprecated, event not accepted to the relay, please use kind 10002 as defined in NIP-65")
|
||||
response.SendNotice(ws, evt.PubKey, "kind 2 is deprecated, event not accepted to the relay, please use kind 10002 as defined in NIP-65")
|
||||
return nil
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package kinds
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"grain/relay/handlers/response"
|
||||
relay "grain/relay/types"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
@ -21,7 +22,7 @@ func HandleReplaceableKind(ctx context.Context, evt relay.Event, collection *mon
|
||||
|
||||
if err != mongo.ErrNoDocuments {
|
||||
if existingEvent.CreatedAt > evt.CreatedAt || (existingEvent.CreatedAt == evt.CreatedAt && existingEvent.ID < evt.ID) {
|
||||
SendNotice(ws, evt.PubKey, "relay already has a newer kind 0 event for this pubkey")
|
||||
response.SendNotice(ws, evt.PubKey, "relay already has a newer kind 0 event for this pubkey")
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package kinds
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"grain/relay/handlers/response"
|
||||
relay "grain/relay/types"
|
||||
|
||||
"go.mongodb.org/mongo-driver/bson"
|
||||
@ -28,7 +29,7 @@ func HandleParameterizedReplaceableKind(ctx context.Context, evt relay.Event, co
|
||||
|
||||
if err != mongo.ErrNoDocuments {
|
||||
if existingEvent.CreatedAt > evt.CreatedAt || (existingEvent.CreatedAt == evt.CreatedAt && existingEvent.ID < evt.ID) {
|
||||
SendNotice(ws, evt.PubKey, "relay already has a newer event for this pubkey and d tag")
|
||||
response.SendNotice(ws, evt.PubKey, "relay already has a newer event for this pubkey and d tag")
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@ -2,7 +2,7 @@ package kinds
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
"grain/relay/handlers/response"
|
||||
relay "grain/relay/types"
|
||||
|
||||
"go.mongodb.org/mongo-driver/mongo"
|
||||
@ -11,13 +11,8 @@ import (
|
||||
|
||||
func HandleUnknownKind(ctx context.Context, evt relay.Event, collection *mongo.Collection, ws *websocket.Conn) error {
|
||||
// Respond with an OK message indicating the event is not accepted
|
||||
sendOK(ws, evt.ID, false, "kind is unknown and not accepted")
|
||||
response.SendOK(ws, evt.ID, false, "kind is unknown and not accepted")
|
||||
|
||||
// Return nil as there's no error in the process, just that the event is not accepted
|
||||
return nil
|
||||
}
|
||||
func sendOK(ws *websocket.Conn, eventID string, status bool, message string) {
|
||||
response := []interface{}{"OK", eventID, status, message}
|
||||
responseBytes, _ := json.Marshal(response)
|
||||
websocket.Message.Send(ws, string(responseBytes))
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package kinds
|
||||
package response
|
||||
|
||||
import (
|
||||
"encoding/json"
|
@ -1,4 +1,4 @@
|
||||
package handlers
|
||||
package response
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
@ -6,7 +6,7 @@ import (
|
||||
"golang.org/x/net/websocket"
|
||||
)
|
||||
|
||||
func sendOK(ws *websocket.Conn, eventID string, status bool, message string) {
|
||||
func SendOK(ws *websocket.Conn, eventID string, status bool, message string) {
|
||||
response := []interface{}{"OK", eventID, status, message}
|
||||
responseBytes, _ := json.Marshal(response)
|
||||
websocket.Message.Send(ws, string(responseBytes))
|
Loading…
Reference in New Issue
Block a user