Consume Wino.Mail.Contracts package
This commit is contained in:
@@ -8,6 +8,10 @@ on:
|
||||
- reopened
|
||||
- ready_for_review
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
packages: read
|
||||
|
||||
jobs:
|
||||
build-winui:
|
||||
name: Build project (${{ matrix.platform }})
|
||||
@@ -33,6 +37,9 @@ jobs:
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: 10.0.x
|
||||
source-url: https://nuget.pkg.github.com/bkaankose/index.json
|
||||
env:
|
||||
NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Restore WinUI project dependencies
|
||||
run: dotnet restore Wino.Mail.WinUI/Wino.Mail.WinUI.csproj --configfile nuget.config -p:Platform=${{ matrix.platform }} -p:RuntimeIdentifier=${{ matrix.rid }}
|
||||
@@ -54,6 +61,9 @@ jobs:
|
||||
uses: actions/setup-dotnet@v4
|
||||
with:
|
||||
dotnet-version: 10.0.x
|
||||
source-url: https://nuget.pkg.github.com/bkaankose/index.json
|
||||
env:
|
||||
NUGET_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Restore Core test projects
|
||||
shell: pwsh
|
||||
|
||||
@@ -33,6 +33,7 @@
|
||||
<PackageVersion Include="Microsoft.Identity.Client.Extensions.Msal" Version="4.82.1" />
|
||||
<PackageVersion Include="Microsoft.NETCore.UniversalWindowsPlatform" Version="6.2.14" />
|
||||
<PackageVersion Include="Microsoft.Xaml.Behaviors.WinUI.Managed" Version="3.0.1" />
|
||||
<PackageVersion Include="Wino.Mail.Contracts" Version="1.0.0" />
|
||||
<PackageVersion Include="MimeKit" Version="4.15.1" />
|
||||
<PackageVersion Include="morelinq" Version="4.4.0" />
|
||||
<PackageVersion Include="Nito.AsyncEx" Version="5.1.2" />
|
||||
|
||||
@@ -60,9 +60,7 @@
|
||||
<PackageReference Include="MailKit" />
|
||||
<PackageReference Include="sqlite-net-pcl" />
|
||||
<PackageReference Include="TimePeriodLibrary.NET" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Wino.Mail.Contracts\Wino.Mail.Contracts.csproj" />
|
||||
<PackageReference Include="Wino.Mail.Contracts" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Service Include="{508349b6-6b84-4df5-91f0-309beebad82d}" />
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
namespace Wino.Mail.Api.Contracts.Admin;
|
||||
|
||||
public sealed record ModerateUserRequest(string ReasonCode, string? ReasonNote);
|
||||
public sealed record AdminUserResultDto(Guid UserId, string Email, string AccountStatus, DateTimeOffset CreatedUtc);
|
||||
public sealed record ModerationActionResultDto(string Action, string ReasonCode, string? ReasonNote, Guid? ActorUserId, DateTimeOffset CreatedUtc);
|
||||
@@ -1,7 +0,0 @@
|
||||
namespace Wino.Mail.Api.Contracts.Ai;
|
||||
|
||||
public sealed record SummarizeRequest(string Html);
|
||||
public sealed record TranslateRequest(string Html, string TargetLanguage);
|
||||
public sealed record RewriteRequest(string Html, string Instruction);
|
||||
public sealed record AiTextResultDto(string Text);
|
||||
public sealed record AiStatusResultDto(bool HasAiPack, string EntitlementStatus, DateTimeOffset? CurrentPeriodStartUtc, DateTimeOffset? CurrentPeriodEndUtc, int? MonthlyLimit, int? Used, int? Remaining);
|
||||
@@ -1,11 +0,0 @@
|
||||
namespace Wino.Mail.Api.Contracts.Auth;
|
||||
|
||||
public sealed record RegisterRequest(string Email, string Password);
|
||||
public sealed record LoginRequest(string Email, string Password);
|
||||
public sealed record CompleteExternalAuthRequest(string Code);
|
||||
public sealed record RefreshRequest(string RefreshToken);
|
||||
public sealed record LogoutRequest(string RefreshToken);
|
||||
public sealed record ForgotPasswordRequest(string Email);
|
||||
public sealed record ResetPasswordRequest(string Email, string ResetToken, string NewPassword);
|
||||
public sealed record AuthUserDto(Guid UserId, string Email, string AccountStatus, bool HasPassword, bool HasGoogleLogin, bool HasFacebookLogin);
|
||||
public sealed record AuthResultDto(AuthUserDto User, string AccessToken, DateTimeOffset AccessTokenExpiresAtUtc, string RefreshToken, DateTimeOffset RefreshTokenExpiresAtUtc);
|
||||
@@ -1,4 +0,0 @@
|
||||
namespace Wino.Mail.Api.Contracts.Billing;
|
||||
|
||||
public sealed record CheckoutSessionResultDto(string Url);
|
||||
public sealed record CustomerPortalResultDto(string Url);
|
||||
@@ -1,25 +0,0 @@
|
||||
namespace Wino.Mail.Api.Contracts.Common;
|
||||
|
||||
public sealed class ApiEnvelope<T>
|
||||
{
|
||||
public bool IsSuccess { get; init; }
|
||||
public string? ErrorCode { get; init; }
|
||||
public T? Result { get; init; }
|
||||
public QuotaInfoDto? Quota { get; init; }
|
||||
|
||||
public static ApiEnvelope<T> Success(T result, QuotaInfoDto? quota = null)
|
||||
=> new()
|
||||
{
|
||||
IsSuccess = true,
|
||||
Result = result,
|
||||
Quota = quota,
|
||||
};
|
||||
|
||||
public static ApiEnvelope<T> Failure(string errorCode, QuotaInfoDto? quota = null)
|
||||
=> new()
|
||||
{
|
||||
IsSuccess = false,
|
||||
ErrorCode = errorCode,
|
||||
Quota = quota,
|
||||
};
|
||||
}
|
||||
@@ -1,27 +0,0 @@
|
||||
namespace Wino.Mail.Api.Contracts.Common;
|
||||
|
||||
public static class ApiErrorCodes
|
||||
{
|
||||
public const string InvalidCredentials = "INVALID_CREDENTIALS";
|
||||
public const string AccountLocked = "ACCOUNT_LOCKED";
|
||||
public const string AccountBanned = "ACCOUNT_BANNED";
|
||||
public const string AccountSuspended = "ACCOUNT_SUSPENDED";
|
||||
public const string RefreshTokenInvalid = "REFRESH_TOKEN_INVALID";
|
||||
public const string EmailAlreadyRegistered = "EMAIL_ALREADY_REGISTERED";
|
||||
public const string ExternalLoginEmailRequired = "EXTERNAL_LOGIN_EMAIL_REQUIRED";
|
||||
public const string ExternalLoginInvalid = "EXTERNAL_LOGIN_INVALID";
|
||||
public const string ExternalAuthStateInvalid = "EXTERNAL_AUTH_STATE_INVALID";
|
||||
public const string ExternalAuthCodeInvalid = "EXTERNAL_AUTH_CODE_INVALID";
|
||||
public const string AiPackRequired = "AI_PACK_REQUIRED";
|
||||
public const string AiQuotaExceeded = "AI_QUOTA_EXCEEDED";
|
||||
public const string AiHtmlEmpty = "AI_HTML_EMPTY";
|
||||
public const string AiHtmlTooLarge = "AI_HTML_TOO_LARGE";
|
||||
public const string AiUnsupportedLanguage = "AI_UNSUPPORTED_LANGUAGE";
|
||||
public const string AiSanitizationFailed = "AI_SANITIZATION_FAILED";
|
||||
public const string AiProviderUnavailable = "AI_PROVIDER_UNAVAILABLE";
|
||||
public const string AiRequestBlocked = "AI_REQUEST_BLOCKED";
|
||||
public const string AiInternalError = "AI_INTERNAL_ERROR";
|
||||
public const string PaddleWebhookInvalid = "PADDLE_WEBHOOK_INVALID";
|
||||
public const string Forbidden = "FORBIDDEN";
|
||||
public const string ValidationFailed = "VALIDATION_FAILED";
|
||||
}
|
||||
@@ -1,10 +0,0 @@
|
||||
namespace Wino.Mail.Api.Contracts.Common;
|
||||
|
||||
public sealed record QuotaInfoDto(
|
||||
bool HasAiPack,
|
||||
string EntitlementStatus,
|
||||
DateTimeOffset? CurrentPeriodStartUtc,
|
||||
DateTimeOffset? CurrentPeriodEndUtc,
|
||||
int? MonthlyLimit,
|
||||
int? Used,
|
||||
int? Remaining);
|
||||
@@ -1,7 +0,0 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
@@ -223,10 +223,10 @@
|
||||
<PackageReference Include="System.Drawing.Common" />
|
||||
<PackageReference Include="WinUIEx" />
|
||||
<PackageReference Include="H.NotifyIcon.WinUI" />
|
||||
<PackageReference Include="Wino.Mail.Contracts" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Wino.Calendar.ViewModels\Wino.Calendar.ViewModels.csproj" />
|
||||
<ProjectReference Include="..\Wino.Mail.Contracts\Wino.Mail.Contracts.csproj" />
|
||||
<ProjectReference Include="..\Wino.Core.Domain\Wino.Core.Domain.csproj" />
|
||||
<ProjectReference Include="..\Wino.Core.ViewModels\Wino.Core.ViewModels.csproj" />
|
||||
<ProjectReference Include="..\Wino.Mail.ViewModels\Wino.Mail.ViewModels.csproj" />
|
||||
|
||||
@@ -22,10 +22,10 @@
|
||||
<PackageReference Include="Serilog.Sinks.Debug" />
|
||||
<PackageReference Include="Serilog.Sinks.File" />
|
||||
<PackageReference Include="Serilog.Exceptions" />
|
||||
<PackageReference Include="Wino.Mail.Contracts" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="..\Wino.Core.Domain\Wino.Core.Domain.csproj" />
|
||||
<ProjectReference Include="..\Wino.Mail.Contracts\Wino.Mail.Contracts.csproj" />
|
||||
<ProjectReference Include="..\Wino.Messages\Wino.Messaging.csproj" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -44,11 +44,6 @@
|
||||
<Platform Solution="*|x64" Project="x64" />
|
||||
<Platform Solution="*|x86" Project="x86" />
|
||||
</Project>
|
||||
<Project Path="Wino.Mail.Contracts/Wino.Mail.Contracts.csproj">
|
||||
<Platform Solution="*|arm64" Project="Any CPU" />
|
||||
<Platform Solution="*|x64" Project="Any CPU" />
|
||||
<Platform Solution="*|x86" Project="Any CPU" />
|
||||
</Project>
|
||||
<Project Path="Wino.Messages/Wino.Messaging.csproj">
|
||||
<Platform Solution="*|arm64" Project="arm64" />
|
||||
<Platform Solution="*|x64" Project="x64" />
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
<packageSources>
|
||||
<!--To inherit the global NuGet package sources remove the <clear/> line below -->
|
||||
<clear />
|
||||
<add key="github" value="https://nuget.pkg.github.com/bkaankose/index.json" />
|
||||
<add key="nuget" value="https://api.nuget.org/v3/index.json" />
|
||||
<add key="labsFeed" value="https://pkgs.dev.azure.com/dotnet/CommunityToolkit/_packaging/CommunityToolkit-Labs/nuget/v3/index.json" protocolVersion="3" />
|
||||
</packageSources>
|
||||
@@ -12,6 +13,9 @@
|
||||
everything else from nuget.org. -->
|
||||
<packageSourceMapping>
|
||||
<!-- key value for <packageSource> should match key values from <packageSources> element -->
|
||||
<packageSource key="github">
|
||||
<package pattern="Wino.Mail.Contracts" />
|
||||
</packageSource>
|
||||
<packageSource key="nuget">
|
||||
<package pattern="*" />
|
||||
<package pattern="CommunityToolkit.Common" />
|
||||
|
||||
Reference in New Issue
Block a user