Merge pull request #121 from greysdawn/patch-2

Edit API to include member display names
This commit is contained in:
Astrid 2019-10-18 13:37:16 +02:00 committed by GitHub
commit 6db4106519
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 14 additions and 3 deletions

View File

@ -41,6 +41,8 @@ namespace PluralKit.API.Controllers
// Explicit bounds checks // Explicit bounds checks
if (newMember.Name != null && newMember.Name.Length > Limits.MaxMemberNameLength) if (newMember.Name != null && newMember.Name.Length > Limits.MaxMemberNameLength)
return BadRequest($"Member name too long ({newMember.Name.Length} > {Limits.MaxMemberNameLength}."); return BadRequest($"Member name too long ({newMember.Name.Length} > {Limits.MaxMemberNameLength}.");
if (newMember.DisplayName != null && newMember.DisplayName.Length > Limits.MaxMemberNameLength)
return BadRequest($"Member display name too long ({newMember.DisplayName.Length} > {Limits.MaxMemberNameLength}.");
if (newMember.Pronouns != null && newMember.Pronouns.Length > Limits.MaxPronounsLength) if (newMember.Pronouns != null && newMember.Pronouns.Length > Limits.MaxPronounsLength)
return BadRequest($"Member pronouns too long ({newMember.Pronouns.Length} > {Limits.MaxPronounsLength}."); return BadRequest($"Member pronouns too long ({newMember.Pronouns.Length} > {Limits.MaxPronounsLength}.");
if (newMember.Description != null && newMember.Description.Length > Limits.MaxDescriptionLength) if (newMember.Description != null && newMember.Description.Length > Limits.MaxDescriptionLength)
@ -57,6 +59,7 @@ namespace PluralKit.API.Controllers
var member = await _members.Create(system, newMember.Name); var member = await _members.Create(system, newMember.Name);
member.Name = newMember.Name; member.Name = newMember.Name;
member.DisplayName = newMember.DisplayName;
member.Color = newMember.Color; member.Color = newMember.Color;
member.AvatarUrl = newMember.AvatarUrl; member.AvatarUrl = newMember.AvatarUrl;
member.Birthday = newMember.Birthday; member.Birthday = newMember.Birthday;
@ -84,6 +87,8 @@ namespace PluralKit.API.Controllers
// Explicit bounds checks // Explicit bounds checks
if (newMember.Name != null && newMember.Name.Length > Limits.MaxMemberNameLength) if (newMember.Name != null && newMember.Name.Length > Limits.MaxMemberNameLength)
return BadRequest($"Member name too long ({newMember.Name.Length} > {Limits.MaxMemberNameLength}."); return BadRequest($"Member name too long ({newMember.Name.Length} > {Limits.MaxMemberNameLength}.");
if (newMember.DisplayName != null && newMember.DisplayName.Length > Limits.MaxMemberNameLength)
return BadRequest($"Member display name too long ({newMember.DisplayName.Length} > {Limits.MaxMemberNameLength}.");
if (newMember.Pronouns != null && newMember.Pronouns.Length > Limits.MaxPronounsLength) if (newMember.Pronouns != null && newMember.Pronouns.Length > Limits.MaxPronounsLength)
return BadRequest($"Member pronouns too long ({newMember.Pronouns.Length} > {Limits.MaxPronounsLength}."); return BadRequest($"Member pronouns too long ({newMember.Pronouns.Length} > {Limits.MaxPronounsLength}.");
if (newMember.Description != null && newMember.Description.Length > Limits.MaxDescriptionLength) if (newMember.Description != null && newMember.Description.Length > Limits.MaxDescriptionLength)
@ -98,6 +103,7 @@ namespace PluralKit.API.Controllers
return BadRequest(); return BadRequest();
member.Name = newMember.Name; member.Name = newMember.Name;
member.DisplayName = newMember.DisplayName;
member.Color = newMember.Color; member.Color = newMember.Color;
member.AvatarUrl = newMember.AvatarUrl; member.AvatarUrl = newMember.AvatarUrl;
member.Birthday = newMember.Birthday; member.Birthday = newMember.Birthday;

View File

@ -145,7 +145,7 @@ namespace PluralKit.Bot.Commands
var members = await _members.GetBySystem(system); var members = await _members.GetBySystem(system);
var embedTitle = system.Name != null ? $"Members of {system.Name.SanitizeMentions()} (`{system.Hid}`)" : $"Members of `{system.Hid}`"; var embedTitle = system.Name != null ? $"Members of {system.Name.SanitizeMentions()} (`{system.Hid}`)" : $"Members of `{system.Hid}`";
await ctx.Paginate<PKMember>( await ctx.Paginate<PKMember>(
members.OrderBy(m => m.Name).ToList(), members.OrderBy(m => m.Name.ToLower()).ToList(),
25, 25,
embedTitle, embedTitle,
(eb, ms) => eb.Description = string.Join("\n", ms.Select((m) => { (eb, ms) => eb.Description = string.Join("\n", ms.Select((m) => {
@ -161,7 +161,7 @@ namespace PluralKit.Bot.Commands
var members = await _members.GetBySystem(system); var members = await _members.GetBySystem(system);
var embedTitle = system.Name != null ? $"Members of {system.Name} (`{system.Hid}`)" : $"Members of `{system.Hid}`"; var embedTitle = system.Name != null ? $"Members of {system.Name} (`{system.Hid}`)" : $"Members of `{system.Hid}`";
await ctx.Paginate<PKMember>( await ctx.Paginate<PKMember>(
members.OrderBy(m => m.Name).ToList(), members.OrderBy(m => m.Name.ToLower()).ToList(),
5, 5,
embedTitle, embedTitle,
(eb, ms) => { (eb, ms) => {

View File

@ -39,6 +39,7 @@ The following three models (usually represented in JSON format) represent the va
|---|---|---|---| |---|---|---|---|
|id|string|No|| |id|string|No||
|name|string?|Yes|50-character limit.| |name|string?|Yes|50-character limit.|
|display name|string?|Yes|50-character limit.|
|description|string?|Yes|1000-character limit.| |description|string?|Yes|1000-character limit.|
|color|color?|Yes|6-char hex (eg. `ff7000`), sans `#`.| |color|color?|Yes|6-char hex (eg. `ff7000`), sans `#`.|
|avatar_url|url?|Yes|Not validated server-side.| |avatar_url|url?|Yes|Not validated server-side.|
@ -264,6 +265,7 @@ Creates a new member with the information given. Missing fields (except for name
```json ```json
{ {
"name": "Craig Peterson", "name": "Craig Peterson",
"display_name": "Craig Peterson [he/they]",
"color": null, "color": null,
"avatar_url": "https://path/to/new/image.png", "avatar_url": "https://path/to/new/image.png",
"birthday": "1997-07-14", "birthday": "1997-07-14",
@ -279,6 +281,7 @@ Creates a new member with the information given. Missing fields (except for name
{ {
"id": "qwert", "id": "qwert",
"name": "Craig Peterson", "name": "Craig Peterson",
"display_name": "Craig Peterson [he/they]",
"color": null, "color": null,
"avatar_url": "https://path/to/new/image.png", "avatar_url": "https://path/to/new/image.png",
"birthday": "1997-07-14", "birthday": "1997-07-14",
@ -301,6 +304,7 @@ Edits a member's information. Missing fields will be set to `null`. Will return
```json ```json
{ {
"name": "Craig Peterson", "name": "Craig Peterson",
"display_name": "Craig Peterson [he/they]",
"color": null, "color": null,
"avatar_url": "https://path/to/new/image.png", "avatar_url": "https://path/to/new/image.png",
"birthday": "1997-07-14", "birthday": "1997-07-14",
@ -316,6 +320,7 @@ Edits a member's information. Missing fields will be set to `null`. Will return
{ {
"id": "qwert", "id": "qwert",
"name": "Craig Peterson", "name": "Craig Peterson",
"display_name": "Craig Peterson [he/they]",
"color": null, "color": null,
"avatar_url": "https://path/to/new/image.png", "avatar_url": "https://path/to/new/image.png",
"birthday": "1997-07-14", "birthday": "1997-07-14",