diff options
| author | Kyren223 <Kyren223@proton.me> | 2024-11-29 23:24:06 +0200 |
|---|---|---|
| committer | Kyren223 <Kyren223@proton.me> | 2024-11-29 23:24:06 +0200 |
| commit | 3fa1c902c1049f56b30092cf6de28c4d358cf434 (patch) | |
| tree | fb5de446cc6bd127cfe946d33c4812194e6f1f73 /internal/server | |
| parent | 371e6c169cd39d9abe5b8d9023d4e5d0025e47a1 (diff) | |
Implemented network positions per user on client and server
Diffstat (limited to 'internal/server')
| -rw-r--r-- | internal/server/api/api.go | 17 | ||||
| -rw-r--r-- | internal/server/server.go | 19 |
2 files changed, 32 insertions, 4 deletions
diff --git a/internal/server/api/api.go b/internal/server/api/api.go index 53ef76a..ec3adf9 100644 --- a/internal/server/api/api.go +++ b/internal/server/api/api.go @@ -220,3 +220,20 @@ func GetNetworksInfo(ctx context.Context, sess *session.Session) (packet.Payload return networksInfo, 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) + err := queries.SwapUserNetworks(ctx, data.SwapUserNetworksParams{ + Pos1: &pos1, + Pos2: &pos2, + UserID: sess.ID(), + }) + if err != nil { + log.Println("database error:", err) + return &internalError + } + + return request +} diff --git a/internal/server/server.go b/internal/server/server.go index 474be10..2ca0c2a 100644 --- a/internal/server/server.go +++ b/internal/server/server.go @@ -311,16 +311,27 @@ func processRequest(ctx context.Context, sess *session.Session, request packet.P // TODO: add a way to measure the time each request/response took and log it // Potentially even separate time for code vs DB operations + var response packet.Payload switch request := request.(type) { case *packet.CreateNetwork: - return timeout(20*time.Millisecond, api.CreateNetwork, ctx, sess, request) + response = timeout(20*time.Millisecond, api.CreateNetwork, ctx, sess, request) + case *packet.SwapUserNetworks: + response = timeout(5*time.Millisecond, api.SwapUserNetworks, ctx, sess, request) + case *packet.SendMessage: - return timeout(20*time.Millisecond, api.SendMessage, ctx, sess, request) + response = timeout(20*time.Millisecond, api.SendMessage, ctx, sess, request) case *packet.RequestMessages: - return timeout(50*time.Millisecond, api.RequestMessages, ctx, sess, request) + response = timeout(50*time.Millisecond, api.RequestMessages, ctx, sess, request) + default: - return &packet.Error{Error: "use of disallowed packet type for request"} + response = &packet.Error{Error: "use of disallowed packet type for request"} } + + if response, ok := response.(*packet.Error); ok { + response.PktType = request.Type() + } + + return response } func timeout[T packet.Payload]( |
