From c3f8131caf597dc028c08c8dd9f2f65a213e580d Mon Sep 17 00:00:00 2001 From: Kyren223 Date: Wed, 27 Nov 2024 22:41:14 +0200 Subject: Added networks info on initial server-client connection --- internal/server/api/api.go | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) (limited to 'internal/server/api/api.go') 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 +} -- cgit v1.3.1