summaryrefslogtreecommitdiff
path: root/internal/server/api/api.go
diff options
context:
space:
mode:
authorKyren223 <Kyren223@proton.me>2024-11-27 22:41:14 +0200
committerKyren223 <Kyren223@proton.me>2024-11-27 22:41:14 +0200
commitc3f8131caf597dc028c08c8dd9f2f65a213e580d (patch)
tree0907927ab413cba3c431699ed2d220be1ffefb66 /internal/server/api/api.go
parent4a0d94e4893cd77a0bb498b355d3e1b3cbeed2df (diff)
Added networks info on initial server-client connection
Diffstat (limited to 'internal/server/api/api.go')
-rw-r--r--internal/server/api/api.go46
1 files changed, 45 insertions, 1 deletions
diff --git a/internal/server/api/api.go b/internal/server/api/api.go
index 50176b6..c67f906 100644
--- a/internal/server/api/api.go
+++ b/internal/server/api/api.go
@@ -102,6 +102,7 @@ func CreateNetwork(ctx context.Context, sess *session.Session, request *packet.C
log.Println("database error:", err)
return &internalError
}
+ defer tx.Rollback() //nolint
queries := data.New(db)
qtx := queries.WithTx(tx)
@@ -161,7 +162,7 @@ func CreateNetwork(ctx context.Context, sess *session.Session, request *packet.C
fullNetwork := packet.FullNetwork{
Network: network,
Frequencies: []data.Frequency{frequency},
- Members: []packet.Member{{
+ Members: []data.GetNetworkMembersRow{{
JoinedAt: networkUser.JoinedAt,
User: user,
IsAdmin: networkUser.IsAdmin,
@@ -172,3 +173,46 @@ func CreateNetwork(ctx context.Context, sess *session.Session, request *packet.C
Networks: []packet.FullNetwork{fullNetwork},
}
}
+
+func GetNetworksInfo(ctx context.Context, sess *session.Session) (packet.Payload, error) {
+ networksInfo := &packet.NetworksInfo{}
+
+ tx, err := db.BeginTx(ctx, nil)
+ if err != nil {
+ return nil, err
+ }
+ defer tx.Rollback() //nolint
+
+ queries := data.New(db)
+ qtx := queries.WithTx(tx)
+
+ networks, err := qtx.GetUserNetworks(ctx, sess.ID())
+ if err != nil {
+ return nil, err
+ }
+
+ for _, network := range networks {
+ frequencies, err := qtx.GetNetworkFrequencies(ctx, network.ID)
+ if err != nil {
+ return nil, err
+ }
+
+ members, err := qtx.GetNetworkMembers(ctx, network.ID)
+ if err != nil {
+ return nil, err
+ }
+
+ networksInfo.Networks = append(networksInfo.Networks, packet.FullNetwork{
+ Network: network,
+ Frequencies: frequencies,
+ Members: members,
+ })
+ }
+
+ err = tx.Commit()
+ if err != nil {
+ return nil, err
+ }
+
+ return networksInfo, nil
+}