✨ Publisher members APIs
This commit is contained in:
parent
6237fd6140
commit
b0b7afd6b3
@ -376,7 +376,8 @@ public class PublisherController(
|
|||||||
// Remove old references for the publisher background
|
// Remove old references for the publisher background
|
||||||
if (publisher.Background is not null)
|
if (publisher.Background is not null)
|
||||||
{
|
{
|
||||||
await fileRefService.DeleteResourceReferencesAsync(publisher.ResourceIdentifier, "publisher.background");
|
await fileRefService.DeleteResourceReferencesAsync(publisher.ResourceIdentifier,
|
||||||
|
"publisher.background");
|
||||||
}
|
}
|
||||||
|
|
||||||
publisher.Background = background.ToReferenceObject();
|
publisher.Background = background.ToReferenceObject();
|
||||||
@ -437,4 +438,34 @@ public class PublisherController(
|
|||||||
|
|
||||||
return NoContent();
|
return NoContent();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpGet("{name}/members")]
|
||||||
|
public async Task<ActionResult<List<PublisherMember>>> ListMembers(
|
||||||
|
string name,
|
||||||
|
[FromQuery] int offset = 0,
|
||||||
|
[FromQuery] int take = 20
|
||||||
|
)
|
||||||
|
{
|
||||||
|
var publisher = await db.Publishers
|
||||||
|
.Where(p => p.Name == name)
|
||||||
|
.FirstOrDefaultAsync();
|
||||||
|
if (publisher is null) return NotFound();
|
||||||
|
|
||||||
|
IQueryable<PublisherMember> query = db.PublisherMembers
|
||||||
|
.Where(m => m.PublisherId == publisher.Id)
|
||||||
|
.Where(m => m.JoinedAt != null)
|
||||||
|
.Include(m => m.Account)
|
||||||
|
.Include(m => m.Account.Profile);
|
||||||
|
|
||||||
|
var total = await query.CountAsync();
|
||||||
|
Response.Headers["X-Total"] = total.ToString();
|
||||||
|
|
||||||
|
var members = await query
|
||||||
|
.OrderBy(m => m.CreatedAt)
|
||||||
|
.Skip(offset)
|
||||||
|
.Take(take)
|
||||||
|
.ToListAsync();
|
||||||
|
|
||||||
|
return Ok(members);
|
||||||
|
}
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user