feat: with_members query string on /systems/:ref/members endpoint
This commit is contained in:
@@ -1,4 +1,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using SqlKata;
|
||||
@@ -25,6 +27,15 @@ namespace PluralKit.Core
|
||||
return _db.QueryStream<PKMember>(query);
|
||||
}
|
||||
|
||||
public Task<IEnumerable<GroupMember>> GetGroupMemberInfo(IEnumerable<GroupId> ids)
|
||||
{
|
||||
return _db.Query<GroupMember>(new Query("group_members")
|
||||
.LeftJoin("groups", "groups.id", "group_members.group_id")
|
||||
.LeftJoin("members", "members.id", "group_members.member_id")
|
||||
.Select("groups.hid as group", "members.hid as member", "members.uuid as member_uuid", "members.member_visibility")
|
||||
.WhereIn("group_members.group_id", ids.Select(x => x.Value).ToArray()));
|
||||
}
|
||||
|
||||
// todo: add this to metrics tracking
|
||||
public async Task AddGroupsToMember(MemberId member, IReadOnlyCollection<GroupId> groups)
|
||||
{
|
||||
@@ -93,4 +104,12 @@ namespace PluralKit.Core
|
||||
return _db.ExecuteQuery(query);
|
||||
}
|
||||
}
|
||||
|
||||
public class GroupMember
|
||||
{
|
||||
public string Group { get; set; }
|
||||
public string Member { get; set; }
|
||||
public Guid MemberUuid { get; set; }
|
||||
public PrivacyLevel MemberVisibility { get; set; }
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user