chore: add csharpier to husky, format backend with csharpier

This commit is contained in:
sam 2024-10-02 00:28:07 +02:00
parent 5fab66444f
commit 7f971e8549
Signed by: sam
GPG key ID: B4EF20DDE721CAA1
73 changed files with 2098 additions and 1048 deletions

View file

@ -6,20 +6,30 @@ using Foxnouns.Backend.Services;
namespace Foxnouns.Backend.Jobs;
public class CreateFlagInvocable(DatabaseContext db, ObjectStorageService objectStorageService, ILogger logger)
: IInvocable, IInvocableWithPayload<CreateFlagPayload>
public class CreateFlagInvocable(
DatabaseContext db,
ObjectStorageService objectStorageService,
ILogger logger
) : IInvocable, IInvocableWithPayload<CreateFlagPayload>
{
private readonly ILogger _logger = logger.ForContext<CreateFlagInvocable>();
public required CreateFlagPayload Payload { get; set; }
public async Task Invoke()
{
_logger.Information("Creating flag {FlagId} for user {UserId} with image data length {DataLength}", Payload.Id,
Payload.UserId, Payload.ImageData.Length);
_logger.Information(
"Creating flag {FlagId} for user {UserId} with image data length {DataLength}",
Payload.Id,
Payload.UserId,
Payload.ImageData.Length
);
try
{
var (hash, image) = await Payload.ImageData.ConvertBase64UriToImage(size: 256, crop: false);
var (hash, image) = await Payload.ImageData.ConvertBase64UriToImage(
size: 256,
crop: false
);
await objectStorageService.PutObjectAsync(Path(hash), image, "image/webp");
var flag = new PrideFlag
@ -28,7 +38,7 @@ public class CreateFlagInvocable(DatabaseContext db, ObjectStorageService object
UserId = Payload.UserId,
Hash = hash,
Name = Payload.Name,
Description = Payload.Description
Description = Payload.Description,
};
db.Add(flag);
@ -45,4 +55,4 @@ public class CreateFlagInvocable(DatabaseContext db, ObjectStorageService object
}
public static string Path(string hash) => $"flags/{hash}.webp";
}
}

View file

@ -6,16 +6,21 @@ using Foxnouns.Backend.Services;
namespace Foxnouns.Backend.Jobs;
public class MemberAvatarUpdateInvocable(DatabaseContext db, ObjectStorageService objectStorageService, ILogger logger)
: IInvocable, IInvocableWithPayload<AvatarUpdatePayload>
public class MemberAvatarUpdateInvocable(
DatabaseContext db,
ObjectStorageService objectStorageService,
ILogger logger
) : IInvocable, IInvocableWithPayload<AvatarUpdatePayload>
{
private readonly ILogger _logger = logger.ForContext<UserAvatarUpdateInvocable>();
public required AvatarUpdatePayload Payload { get; set; }
public async Task Invoke()
{
if (Payload.NewAvatar != null) await UpdateMemberAvatarAsync(Payload.Id, Payload.NewAvatar);
else await ClearMemberAvatarAsync(Payload.Id);
if (Payload.NewAvatar != null)
await UpdateMemberAvatarAsync(Payload.Id, Payload.NewAvatar);
else
await ClearMemberAvatarAsync(Payload.Id);
}
private async Task UpdateMemberAvatarAsync(Snowflake id, string newAvatar)
@ -25,7 +30,10 @@ public class MemberAvatarUpdateInvocable(DatabaseContext db, ObjectStorageServic
var member = await db.Members.FindAsync(id);
if (member == null)
{
_logger.Warning("Update avatar job queued for {MemberId} but no member with that ID exists", id);
_logger.Warning(
"Update avatar job queued for {MemberId} but no member with that ID exists",
id
);
return;
}
@ -46,7 +54,11 @@ public class MemberAvatarUpdateInvocable(DatabaseContext db, ObjectStorageServic
}
catch (ArgumentException ae)
{
_logger.Warning("Invalid data URI for new avatar for member {MemberId}: {Reason}", id, ae.Message);
_logger.Warning(
"Invalid data URI for new avatar for member {MemberId}: {Reason}",
id,
ae.Message
);
}
}
@ -57,7 +69,10 @@ public class MemberAvatarUpdateInvocable(DatabaseContext db, ObjectStorageServic
var member = await db.Members.FindAsync(id);
if (member == null)
{
_logger.Warning("Clear avatar job queued for {MemberId} but no member with that ID exists", id);
_logger.Warning(
"Clear avatar job queued for {MemberId} but no member with that ID exists",
id
);
return;
}
@ -74,4 +89,4 @@ public class MemberAvatarUpdateInvocable(DatabaseContext db, ObjectStorageServic
}
public static string Path(Snowflake id, string hash) => $"members/{id}/avatars/{hash}.webp";
}
}

View file

@ -4,4 +4,10 @@ namespace Foxnouns.Backend.Jobs;
public record AvatarUpdatePayload(Snowflake Id, string? NewAvatar);
public record CreateFlagPayload(Snowflake Id, Snowflake UserId, string Name, string ImageData, string? Description);
public record CreateFlagPayload(
Snowflake Id,
Snowflake UserId,
string Name,
string ImageData,
string? Description
);

View file

@ -6,16 +6,21 @@ using Foxnouns.Backend.Services;
namespace Foxnouns.Backend.Jobs;
public class UserAvatarUpdateInvocable(DatabaseContext db, ObjectStorageService objectStorageService, ILogger logger)
: IInvocable, IInvocableWithPayload<AvatarUpdatePayload>
public class UserAvatarUpdateInvocable(
DatabaseContext db,
ObjectStorageService objectStorageService,
ILogger logger
) : IInvocable, IInvocableWithPayload<AvatarUpdatePayload>
{
private readonly ILogger _logger = logger.ForContext<UserAvatarUpdateInvocable>();
public required AvatarUpdatePayload Payload { get; set; }
public async Task Invoke()
{
if (Payload.NewAvatar != null) await UpdateUserAvatarAsync(Payload.Id, Payload.NewAvatar);
else await ClearUserAvatarAsync(Payload.Id);
if (Payload.NewAvatar != null)
await UpdateUserAvatarAsync(Payload.Id, Payload.NewAvatar);
else
await ClearUserAvatarAsync(Payload.Id);
}
private async Task UpdateUserAvatarAsync(Snowflake id, string newAvatar)
@ -25,7 +30,10 @@ public class UserAvatarUpdateInvocable(DatabaseContext db, ObjectStorageService
var user = await db.Users.FindAsync(id);
if (user == null)
{
_logger.Warning("Update avatar job queued for {UserId} but no user with that ID exists", id);
_logger.Warning(
"Update avatar job queued for {UserId} but no user with that ID exists",
id
);
return;
}
@ -47,7 +55,11 @@ public class UserAvatarUpdateInvocable(DatabaseContext db, ObjectStorageService
}
catch (ArgumentException ae)
{
_logger.Warning("Invalid data URI for new avatar for user {UserId}: {Reason}", id, ae.Message);
_logger.Warning(
"Invalid data URI for new avatar for user {UserId}: {Reason}",
id,
ae.Message
);
}
}
@ -58,7 +70,10 @@ public class UserAvatarUpdateInvocable(DatabaseContext db, ObjectStorageService
var user = await db.Users.FindAsync(id);
if (user == null)
{
_logger.Warning("Clear avatar job queued for {UserId} but no user with that ID exists", id);
_logger.Warning(
"Clear avatar job queued for {UserId} but no user with that ID exists",
id
);
return;
}
@ -75,4 +90,4 @@ public class UserAvatarUpdateInvocable(DatabaseContext db, ObjectStorageService
}
public static string Path(Snowflake id, string hash) => $"users/{id}/avatars/{hash}.webp";
}
}