diff options
Diffstat (limited to 'internal/server/api/api.go')
| -rw-r--r-- | internal/server/api/api.go | 46 |
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 +} |
