chore: add csharpier to husky, format backend with csharpier
This commit is contained in:
		
							parent
							
								
									5fab66444f
								
							
						
					
					
						commit
						7f971e8549
					
				
					 73 changed files with 2098 additions and 1048 deletions
				
			
		|  | @ -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"; | ||||
| } | ||||
| } | ||||
|  |  | |||
|  | @ -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"; | ||||
| } | ||||
| } | ||||
|  |  | |||
|  | @ -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 | ||||
| ); | ||||
|  |  | |||
|  | @ -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"; | ||||
| } | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue