mirror of
https://github.com/Kyren223/eko.git
synced 2026-04-25 06:35:26 +00:00
Added swap frequencies support on server-side
This commit is contained in:
@@ -232,8 +232,6 @@ func GetNetworksInfo(ctx context.Context, sess *session.Session) (packet.Payload
|
||||
}, nil
|
||||
}
|
||||
|
||||
// FIXME: Deletion of a network is not handled!
|
||||
// it needs to be shifted like how it works with frequencies!
|
||||
func SwapUserNetworks(ctx context.Context, sess *session.Session, request *packet.SwapUserNetworks) packet.Payload {
|
||||
queries := data.New(db)
|
||||
pos1, pos2 := int64(request.Pos1), int64(request.Pos2)
|
||||
@@ -259,8 +257,7 @@ func CreateFrequency(ctx context.Context, sess *session.Session, request *packet
|
||||
NetworkID: request.Network,
|
||||
})
|
||||
if err == sql.ErrNoRows {
|
||||
log.Println("Err", err)
|
||||
return &packet.Error{Error: "user entry in network doesn't exist"}
|
||||
return &packet.Error{Error: "either user or network don't exist"}
|
||||
}
|
||||
if err != nil {
|
||||
log.Println("database error 1:", err)
|
||||
@@ -306,3 +303,35 @@ func CreateFrequency(ctx context.Context, sess *session.Session, request *packet
|
||||
Set: false,
|
||||
}
|
||||
}
|
||||
|
||||
func SwapFrequencies(ctx context.Context, sess *session.Session, request *packet.SwapFrequencies) packet.Payload {
|
||||
queries := data.New(db)
|
||||
|
||||
// Check if authorized
|
||||
userNetwork, err := queries.GetUserNetwork(ctx, data.GetUserNetworkParams{
|
||||
UserID: sess.ID(),
|
||||
NetworkID: request.Network,
|
||||
})
|
||||
if err == sql.ErrNoRows {
|
||||
return &packet.Error{Error: "either user or network don't exist"}
|
||||
}
|
||||
if err != nil {
|
||||
log.Println("database error 1:", err)
|
||||
return &ErrInternalError
|
||||
}
|
||||
if !userNetwork.IsAdmin || !userNetwork.IsMember || userNetwork.IsBanned {
|
||||
return &ErrPermissionDenied
|
||||
}
|
||||
|
||||
err = queries.SwapFrequencies(ctx, data.SwapFrequenciesParams{
|
||||
Pos1: int64(request.Pos1),
|
||||
Pos2: int64(request.Pos2),
|
||||
NetworkID: request.Network,
|
||||
})
|
||||
if err != nil {
|
||||
log.Println("database error 2:", err)
|
||||
return &ErrInternalError
|
||||
}
|
||||
|
||||
return request
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package api
|
||||
|
||||
import "strings"
|
||||
import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
const hex = "0123456789abcdefABCDEF"
|
||||
|
||||
|
||||
@@ -320,6 +320,8 @@ func processRequest(ctx context.Context, sess *session.Session, request packet.P
|
||||
|
||||
case *packet.CreateFrequency:
|
||||
response = timeout(5*time.Millisecond, api.CreateFrequency, ctx, sess, request)
|
||||
case *packet.SwapFrequencies:
|
||||
response = timeout(5*time.Millisecond, api.SwapFrequencies, ctx, sess, request)
|
||||
|
||||
case *packet.SendMessage:
|
||||
response = timeout(20*time.Millisecond, api.SendMessage, ctx, sess, request)
|
||||
|
||||
Reference in New Issue
Block a user