Skip to content

Commit

Permalink
Merge pull request #54 from thunderstore-io/fix-category-serialization
Browse files Browse the repository at this point in the history
Fix category (de)serialization
  • Loading branch information
MythicManiac authored Feb 1, 2022
2 parents 63ea4aa + 6804cdc commit daa0912
Showing 1 changed file with 93 additions and 42 deletions.
135 changes: 93 additions & 42 deletions ThunderstoreCLI/Models/PublishModels.cs
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,20 @@ namespace ThunderstoreCLI.Models;
[ExcludeFromCodeCoverageAttribute]
public class PackageUploadMetadata : BaseJson<PackageUploadMetadata, PackageUploadMetadataContext>
{
[JsonPropertyName("author_name")] public string? AuthorName { get; set; }
[JsonPropertyName("author_name")]
public string? AuthorName { get; set; }

[JsonPropertyName("categories")] public string[]? Categories { get; set; }
[JsonPropertyName("categories")]
public string[]? Categories { get; set; }

[JsonPropertyName("communities")] public string[]? Communities { get; set; }
[JsonPropertyName("communities")]
public string[]? Communities { get; set; }

[JsonPropertyName("has_nsfw_content")] public bool HasNsfwContent { get; set; }
[JsonPropertyName("has_nsfw_content")]
public bool HasNsfwContent { get; set; }

[JsonPropertyName("upload_uuid")] public string? UploadUUID { get; set; }
[JsonPropertyName("upload_uuid")]
public string? UploadUUID { get; set; }
}

[JsonSerializable(typeof(PackageUploadMetadata))]
Expand All @@ -26,33 +31,45 @@ public class UploadInitiateData : BaseJson<UploadInitiateData, UploadInitiateDat
{
public class UserMediaData
{
[JsonPropertyName("uuid")] public string? UUID { get; set; }
[JsonPropertyName("uuid")]
public string? UUID { get; set; }

[JsonPropertyName("filename")] public string? Filename { get; set; }
[JsonPropertyName("filename")]
public string? Filename { get; set; }

[JsonPropertyName("size")] public long Size { get; set; }
[JsonPropertyName("size")]
public long Size { get; set; }

[JsonPropertyName("datetime_created")] public DateTime TimeCreated { get; set; }
[JsonPropertyName("datetime_created")]
public DateTime TimeCreated { get; set; }

[JsonPropertyName("expiry")] public DateTime? ExpireTime { get; set; }
[JsonPropertyName("expiry")]
public DateTime? ExpireTime { get; set; }

[JsonPropertyName("status")] public string? Status { get; set; }
[JsonPropertyName("status")]
public string? Status { get; set; }
}

public class UploadPartData
{
[JsonPropertyName("part_number")] public int PartNumber { get; set; }
[JsonPropertyName("part_number")]
public int PartNumber { get; set; }

[JsonPropertyName("url")] public string? Url { get; set; }
[JsonPropertyName("url")]
public string? Url { get; set; }

[JsonPropertyName("offset")] public long Offset { get; set; }
[JsonPropertyName("offset")]
public long Offset { get; set; }

[JsonPropertyName("length")] public int Length { get; set; }
[JsonPropertyName("length")]
public int Length { get; set; }
}

[JsonPropertyName("user_media")] public UserMediaData? Metadata { get; set; }
[JsonPropertyName("user_media")]
public UserMediaData? Metadata { get; set; }

[JsonPropertyName("upload_urls")] public UploadPartData[]? UploadUrls { get; set; }
[JsonPropertyName("upload_urls")]
public UploadPartData[]? UploadUrls { get; set; }
}

[JsonSerializable(typeof(UploadInitiateData))]
Expand All @@ -62,9 +79,11 @@ public partial class UploadInitiateDataContext : JsonSerializerContext { }
[ExcludeFromCodeCoverageAttribute]
public class FileData : BaseJson<FileData, FileDataContext>
{
[JsonPropertyName("filename")] public string? Filename { get; set; }
[JsonPropertyName("filename")]
public string? Filename { get; set; }

[JsonPropertyName("file_size_bytes")] public long Filesize { get; set; }
[JsonPropertyName("file_size_bytes")]
public long Filesize { get; set; }
}

[JsonSerializable(typeof(FileData))]
Expand All @@ -76,12 +95,15 @@ public class CompletedUpload : BaseJson<CompletedUpload, CompletedUploadContext>
{
public class CompletedPartData
{
[JsonPropertyName("ETag")] public string? ETag { get; set; }
[JsonPropertyName("ETag")]
public string? ETag { get; set; }

[JsonPropertyName("PartNumber")] public int PartNumber { get; set; }
[JsonPropertyName("PartNumber")]
public int PartNumber { get; set; }
}

[JsonPropertyName("parts")] public CompletedPartData[]? Parts { get; set; }
[JsonPropertyName("parts")]
public CompletedPartData[]? Parts { get; set; }
}

[JsonSerializable(typeof(CompletedUpload))]
Expand All @@ -95,56 +117,85 @@ public class AvailableCommunityData
{
public class CommunityData
{
[JsonPropertyName("identifier")] public string? Identifier { get; set; }
[JsonPropertyName("identifier")]
public string? Identifier { get; set; }

[JsonPropertyName("name")] public string? Name { get; set; }
[JsonPropertyName("name")]
public string? Name { get; set; }

[JsonPropertyName("discord_url")] public string? DiscordUrl { get; set; }
[JsonPropertyName("discord_url")]
public string? DiscordUrl { get; set; }

[JsonPropertyName("wiki_url")] public object? WikiUrl { get; set; }
[JsonPropertyName("wiki_url")]
public object? WikiUrl { get; set; }

[JsonPropertyName("require_package_listing_approval")]
public bool RequirePackageListingApproval { get; set; }
}

[JsonPropertyName("community")] public CommunityData? Community { get; set; }
public class CategoryData
{
[JsonPropertyName("name")]
public string? Name { get; set; }

[JsonPropertyName("slug")]
public string? Slug { get; set; }
}

[JsonPropertyName("community")]
public CommunityData? Community { get; set; }

[JsonPropertyName("categories")] public List<string>? Categories { get; set; }
[JsonPropertyName("categories")]
public List<CategoryData>? Categories { get; set; }

[JsonPropertyName("url")] public string? Url { get; set; }
[JsonPropertyName("url")]
public string? Url { get; set; }
}

public class PackageVersionData
{
[JsonPropertyName("namespace")] public string? Namespace { get; set; }
[JsonPropertyName("namespace")]
public string? Namespace { get; set; }

[JsonPropertyName("name")] public string? Name { get; set; }
[JsonPropertyName("name")]
public string? Name { get; set; }

[JsonPropertyName("version_number")] public string? VersionNumber { get; set; }
[JsonPropertyName("version_number")]
public string? VersionNumber { get; set; }

[JsonPropertyName("full_name")] public string? FullName { get; set; }
[JsonPropertyName("full_name")]
public string? FullName { get; set; }

[JsonPropertyName("description")] public string? Description { get; set; }
[JsonPropertyName("description")]
public string? Description { get; set; }

[JsonPropertyName("icon")] public string? Icon { get; set; }
[JsonPropertyName("icon")]
public string? Icon { get; set; }

[JsonPropertyName("dependencies")] public List<string>? Dependencies { get; set; }
[JsonPropertyName("dependencies")]
public List<string>? Dependencies { get; set; }

[JsonPropertyName("download_url")] public string? DownloadUrl { get; set; }
[JsonPropertyName("download_url")]
public string? DownloadUrl { get; set; }

[JsonPropertyName("downloads")] public int Downloads { get; set; }
[JsonPropertyName("downloads")]
public int Downloads { get; set; }

[JsonPropertyName("date_created")] public DateTime DateCreated { get; set; }
[JsonPropertyName("date_created")]
public DateTime DateCreated { get; set; }

[JsonPropertyName("website_url")] public string? WebsiteUrl { get; set; }
[JsonPropertyName("website_url")]
public string? WebsiteUrl { get; set; }

[JsonPropertyName("is_active")] public bool IsActive { get; set; }
[JsonPropertyName("is_active")]
public bool IsActive { get; set; }
}

[JsonPropertyName("available_communities")]
public List<AvailableCommunityData>? AvailableCommunities { get; set; }

[JsonPropertyName("package_version")] public PackageVersionData? PackageVersion { get; set; }
[JsonPropertyName("package_version")]
public PackageVersionData? PackageVersion { get; set; }
}

[JsonSerializable(typeof(PublishData))]
Expand Down

0 comments on commit daa0912

Please sign in to comment.