[backend/masto-client] Return account source on verify_credentials

This commit is contained in:
Laura Hausmann 2024-02-19 01:19:06 +01:00
parent 7c55f2016b
commit b5a805e617
No known key found for this signature in database
GPG key ID: D044E84C5BE01605
3 changed files with 27 additions and 5 deletions

View file

@ -40,7 +40,7 @@ public class AccountController(
public async Task<IActionResult> VerifyUserCredentials() public async Task<IActionResult> VerifyUserCredentials()
{ {
var user = HttpContext.GetUserOrFail(); var user = HttpContext.GetUserOrFail();
var res = await userRenderer.RenderAsync(user); var res = await userRenderer.RenderAsync(user, user.UserProfile, true);
return Ok(res); return Ok(res);
} }

View file

@ -11,7 +11,7 @@ public class UserRenderer(IOptions<Config.InstanceSection> config, MfmConverter
{ {
private readonly string _transparent = $"https://{config.Value.WebDomain}/assets/transparent.png"; private readonly string _transparent = $"https://{config.Value.WebDomain}/assets/transparent.png";
public async Task<AccountEntity> RenderAsync(User user, UserProfile? profile) public async Task<AccountEntity> RenderAsync(User user, UserProfile? profile, bool source = false)
{ {
var acct = user.Username; var acct = user.Username;
if (user.Host != null) if (user.Host != null)
@ -41,6 +41,19 @@ public class UserRenderer(IOptions<Config.InstanceSection> config, MfmConverter
Fields = [] //TODO Fields = [] //TODO
}; };
if (source)
{
//TODO: populate these
res.Source = new AccountSource
{
Fields = [],
Language = "",
Note = profile?.Description ?? "",
Privacy = StatusEntity.EncodeVisibility(Note.NoteVisibility.Public),
Sensitive = false
};
}
return res; return res;
} }

View file

@ -24,8 +24,8 @@ public class AccountEntity : IEntity
[J("bot")] public required bool IsBot { get; set; } [J("bot")] public required bool IsBot { get; set; }
[J("discoverable")] public required bool IsDiscoverable { get; set; } [J("discoverable")] public required bool IsDiscoverable { get; set; }
[J("fields")] public required Field[] Fields { get; set; } [J("fields")] public required Field[] Fields { get; set; }
[J("source")] public AccountSource? Source { get; set; }
[J("source")] public object? Source => null; //FIXME
[J("emojis")] public object[] Emoji => []; //FIXME [J("emojis")] public object[] Emoji => []; //FIXME
[J("id")] public required string Id { get; set; } [J("id")] public required string Id { get; set; }
} }
@ -36,3 +36,12 @@ public class Field
[J("value")] public required string Value { get; set; } [J("value")] public required string Value { get; set; }
[J("verified_at")] public string? VerifiedAt { get; set; } [J("verified_at")] public string? VerifiedAt { get; set; }
} }
public class AccountSource
{
[J("note")] public required string Note;
[J("privacy")] public required string Privacy;
[J("language")] public required string Language;
[J("sensitive")] public required bool Sensitive;
[J("fields")] public required Field[] Fields { get; set; }
}