summary refs log tree commit diff
path: root/extra/admin-api/DataMappings/Spacebar.DataMappings.Generic/User.cs
blob: 457544fdc5f4732514bc038aa626a1dc0e9f3236 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System.Text.Json;
using System.Text.Json.Nodes;
using Spacebar.Models.Generic;

namespace Spacebar.DataMappings.Generic;

public static class User
{
    public static PartialUser ToPartialUser(this Models.Db.Models.User user)
    {
        return new PartialUser()
        {
            Id = user.Id,
            Discriminator = user.Discriminator,
            Username = user.Username,
            AccentColor = user.AccentColor,
            Avatar = user.Avatar,
            AvatarDecorationData = string.IsNullOrWhiteSpace(user.AvatarDecorationData) ? null : JsonSerializer.Deserialize<JsonObject>(user.AvatarDecorationData), // TODO: schema
            Banner = user.Banner,
            Bot = user.Bot,
            Collectibles = string.IsNullOrWhiteSpace(user.Collectibles) ? null : JsonSerializer.Deserialize<JsonObject>(user.Collectibles), // TODO: schema
            DisplayNameStyles = JsonSerializer.Deserialize<DisplayNameStyle>(user.DisplayNameStyles ?? "null"),
            // GlobalName = x.GlobalName,
            PrimaryGuild = string.IsNullOrWhiteSpace(user.PrimaryGuild) ? null : JsonSerializer.Deserialize<JsonObject>(user.PrimaryGuild), // TODO: schema
            PublicFlags = user.PublicFlags,
            System = user.System,
        };
    }

    extension(Models.Db.Models.User user)
    {
        public string Tag => $"{user.Username}#{user.Discriminator}";
    }
}