Skip to content

Commit 20de033

Browse files
committed
Create function to get existing users in circle with role
1 parent 3d3abc3 commit 20de033

2 files changed

Lines changed: 36 additions & 0 deletions

File tree

backend/models/user.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ type User struct {
99
Password string `json:"password"`
1010
}
1111

12+
type UserRole struct {
13+
User User
14+
Role string
15+
}
16+
1217
type RegisterData struct {
1318
FirstName string `json:"firstName"`
1419
LastName string `json:"lastName"`

backend/postgres/circles_repo.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,37 @@ func GetInviteUsersInCircle(userID string, circleID string) ([]models.User, erro
221221
return users, nil
222222
}
223223

224+
func GetExistingUsersInCircle(circleID string) ([]models.UserRole, error) {
225+
var users []models.UserRole
226+
rows, err := pool.Query(
227+
context.Background(),
228+
`
229+
SELECT u.id, u.username, uc.role
230+
FROM users u
231+
INNER JOIN users_circles uc ON u.id = uc.user_id
232+
WHERE uc.circle_id = $1
233+
ORDER BY u.username ASC;
234+
`,
235+
circleID,
236+
)
237+
if err != nil {
238+
fmt.Fprintf(os.Stderr, "Unable to query PSQL: %v\n", err)
239+
return nil, err
240+
}
241+
defer rows.Close()
242+
243+
for rows.Next() {
244+
var user models.UserRole
245+
err = rows.Scan(&user.User.ID, &user.User.Username, &user.Role)
246+
if err != nil {
247+
fmt.Fprintf(os.Stderr, "Unable to scan row: %v\n", err)
248+
return nil, err
249+
}
250+
users = append(users, user)
251+
}
252+
return users, nil
253+
}
254+
224255
func LoadCircleUserMap() (map[string]map[string]bool, error) {
225256
ctx := context.Background()
226257
conn, err := pool.Acquire(ctx)

0 commit comments

Comments
 (0)