refactor(backend): use explicit types instead of var by default
This commit is contained in:
		
							parent
							
								
									bc7fd6d804
								
							
						
					
					
						commit
						649988db25
					
				
					 52 changed files with 506 additions and 420 deletions
				
			
		|  | @ -40,7 +40,7 @@ public class CreateDataExportInvocable( | |||
| 
 | ||||
|     private async Task InvokeAsync() | ||||
|     { | ||||
|         var user = await db | ||||
|         User? user = await db | ||||
|             .Users.Include(u => u.AuthMethods) | ||||
|             .Include(u => u.Flags) | ||||
|             .Include(u => u.ProfileFlags) | ||||
|  | @ -66,25 +66,19 @@ public class CreateDataExportInvocable( | |||
|         WriteJson( | ||||
|             zip, | ||||
|             "user.json", | ||||
|             await userRenderer.RenderUserInnerAsync( | ||||
|                 user, | ||||
|                 true, | ||||
|                 ["*"], | ||||
|                 renderMembers: false, | ||||
|                 renderAuthMethods: true | ||||
|             ) | ||||
|             await userRenderer.RenderUserInnerAsync(user, true, ["*"], false, true) | ||||
|         ); | ||||
|         await WriteS3Object(zip, "user-avatar.webp", userRenderer.AvatarUrlFor(user)); | ||||
| 
 | ||||
|         foreach (var flag in user.Flags) | ||||
|         foreach (PrideFlag? flag in user.Flags) | ||||
|             await WritePrideFlag(zip, flag); | ||||
| 
 | ||||
|         var members = await db | ||||
|         List<Member> members = await db | ||||
|             .Members.Include(m => m.User) | ||||
|             .Include(m => m.ProfileFlags) | ||||
|             .Where(m => m.UserId == user.Id) | ||||
|             .ToListAsync(); | ||||
|         foreach (var member in members) | ||||
|         foreach (Member? member in members) | ||||
|             await WriteMember(zip, member); | ||||
| 
 | ||||
|         // We want to dispose the ZipArchive on an error, but we need to dispose it manually to upload to object storage. | ||||
|  | @ -94,7 +88,7 @@ public class CreateDataExportInvocable( | |||
|         stream.Seek(0, SeekOrigin.Begin); | ||||
| 
 | ||||
|         // Upload the file! | ||||
|         var filename = AuthUtils.RandomToken().Replace('+', '-').Replace('/', '_'); | ||||
|         string filename = AuthUtils.RandomToken().Replace('+', '-').Replace('/', '_'); | ||||
|         await objectStorageService.PutObjectAsync( | ||||
|             ExportPath(user.Id, filename), | ||||
|             stream, | ||||
|  | @ -132,8 +126,8 @@ public class CreateDataExportInvocable( | |||
|             return; | ||||
|         } | ||||
| 
 | ||||
|         var entry = zip.CreateEntry($"flag-{flag.Id}/flag.txt"); | ||||
|         await using var stream = entry.Open(); | ||||
|         ZipArchiveEntry entry = zip.CreateEntry($"flag-{flag.Id}/flag.txt"); | ||||
|         await using Stream stream = entry.Open(); | ||||
|         await using var writer = new StreamWriter(stream); | ||||
|         await writer.WriteAsync(flagData); | ||||
|     } | ||||
|  | @ -164,7 +158,7 @@ public class CreateDataExportInvocable( | |||
| 
 | ||||
|     private void WriteJson(ZipArchive zip, string filename, object data) | ||||
|     { | ||||
|         var json = JsonConvert.SerializeObject(data, Formatting.Indented); | ||||
|         string json = JsonConvert.SerializeObject(data, Formatting.Indented); | ||||
| 
 | ||||
|         _logger.Debug( | ||||
|             "Writing file {Filename} to archive with size {Length}", | ||||
|  | @ -172,8 +166,8 @@ public class CreateDataExportInvocable( | |||
|             json.Length | ||||
|         ); | ||||
| 
 | ||||
|         var entry = zip.CreateEntry(filename); | ||||
|         using var stream = entry.Open(); | ||||
|         ZipArchiveEntry entry = zip.CreateEntry(filename); | ||||
|         using Stream stream = entry.Open(); | ||||
|         using var writer = new StreamWriter(stream); | ||||
|         writer.Write(json); | ||||
|     } | ||||
|  | @ -183,14 +177,14 @@ public class CreateDataExportInvocable( | |||
|         if (s3Path == null) | ||||
|             return; | ||||
| 
 | ||||
|         var resp = await Client.GetAsync(s3Path); | ||||
|         HttpResponseMessage resp = await Client.GetAsync(s3Path); | ||||
|         if (resp.StatusCode != HttpStatusCode.OK) | ||||
|         { | ||||
|             _logger.Warning("S3 path {S3Path} returned a non-200 status, not saving file", s3Path); | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
|         await using var respStream = await resp.Content.ReadAsStreamAsync(); | ||||
|         await using Stream respStream = await resp.Content.ReadAsStreamAsync(); | ||||
| 
 | ||||
|         _logger.Debug( | ||||
|             "Writing file {Filename} to archive with size {Length}", | ||||
|  | @ -198,8 +192,8 @@ public class CreateDataExportInvocable( | |||
|             respStream.Length | ||||
|         ); | ||||
| 
 | ||||
|         var entry = zip.CreateEntry(filename); | ||||
|         await using var entryStream = entry.Open(); | ||||
|         ZipArchiveEntry entry = zip.CreateEntry(filename); | ||||
|         await using Stream entryStream = entry.Open(); | ||||
| 
 | ||||
|         respStream.Seek(0, SeekOrigin.Begin); | ||||
|         await respStream.CopyToAsync(entryStream); | ||||
|  |  | |||
|  | @ -26,10 +26,10 @@ public class CreateFlagInvocable( | |||
| 
 | ||||
|         try | ||||
|         { | ||||
|             var (hash, image) = await ImageObjectExtensions.ConvertBase64UriToImage( | ||||
|             (string? hash, Stream? image) = await ImageObjectExtensions.ConvertBase64UriToImage( | ||||
|                 Payload.ImageData, | ||||
|                 size: 256, | ||||
|                 crop: false | ||||
|                 256, | ||||
|                 false | ||||
|             ); | ||||
|             await objectStorageService.PutObjectAsync(Path(hash), image, "image/webp"); | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,5 +1,6 @@ | |||
| using Coravel.Invocable; | ||||
| using Foxnouns.Backend.Database; | ||||
| using Foxnouns.Backend.Database.Models; | ||||
| using Foxnouns.Backend.Extensions; | ||||
| using Foxnouns.Backend.Services; | ||||
| 
 | ||||
|  | @ -26,7 +27,7 @@ public class MemberAvatarUpdateInvocable( | |||
|     { | ||||
|         _logger.Debug("Updating avatar for member {MemberId}", id); | ||||
| 
 | ||||
|         var member = await db.Members.FindAsync(id); | ||||
|         Member? member = await db.Members.FindAsync(id); | ||||
|         if (member == null) | ||||
|         { | ||||
|             _logger.Warning( | ||||
|  | @ -38,12 +39,12 @@ public class MemberAvatarUpdateInvocable( | |||
| 
 | ||||
|         try | ||||
|         { | ||||
|             var (hash, image) = await ImageObjectExtensions.ConvertBase64UriToImage( | ||||
|             (string? hash, Stream? image) = await ImageObjectExtensions.ConvertBase64UriToImage( | ||||
|                 newAvatar, | ||||
|                 size: 512, | ||||
|                 crop: true | ||||
|                 512, | ||||
|                 true | ||||
|             ); | ||||
|             var prevHash = member.Avatar; | ||||
|             string? prevHash = member.Avatar; | ||||
| 
 | ||||
|             await objectStorageService.PutObjectAsync(Path(id, hash), image, "image/webp"); | ||||
| 
 | ||||
|  | @ -69,7 +70,7 @@ public class MemberAvatarUpdateInvocable( | |||
|     { | ||||
|         _logger.Debug("Clearing avatar for member {MemberId}", id); | ||||
| 
 | ||||
|         var member = await db.Members.FindAsync(id); | ||||
|         Member? member = await db.Members.FindAsync(id); | ||||
|         if (member == null) | ||||
|         { | ||||
|             _logger.Warning( | ||||
|  |  | |||
|  | @ -1,5 +1,6 @@ | |||
| using Coravel.Invocable; | ||||
| using Foxnouns.Backend.Database; | ||||
| using Foxnouns.Backend.Database.Models; | ||||
| using Foxnouns.Backend.Extensions; | ||||
| using Foxnouns.Backend.Services; | ||||
| 
 | ||||
|  | @ -26,7 +27,7 @@ public class UserAvatarUpdateInvocable( | |||
|     { | ||||
|         _logger.Debug("Updating avatar for user {MemberId}", id); | ||||
| 
 | ||||
|         var user = await db.Users.FindAsync(id); | ||||
|         User? user = await db.Users.FindAsync(id); | ||||
|         if (user == null) | ||||
|         { | ||||
|             _logger.Warning( | ||||
|  | @ -38,13 +39,13 @@ public class UserAvatarUpdateInvocable( | |||
| 
 | ||||
|         try | ||||
|         { | ||||
|             var (hash, image) = await ImageObjectExtensions.ConvertBase64UriToImage( | ||||
|             (string? hash, Stream? image) = await ImageObjectExtensions.ConvertBase64UriToImage( | ||||
|                 newAvatar, | ||||
|                 size: 512, | ||||
|                 crop: true | ||||
|                 512, | ||||
|                 true | ||||
|             ); | ||||
|             image.Seek(0, SeekOrigin.Begin); | ||||
|             var prevHash = user.Avatar; | ||||
|             string? prevHash = user.Avatar; | ||||
| 
 | ||||
|             await objectStorageService.PutObjectAsync(Path(id, hash), image, "image/webp"); | ||||
| 
 | ||||
|  | @ -70,7 +71,7 @@ public class UserAvatarUpdateInvocable( | |||
|     { | ||||
|         _logger.Debug("Clearing avatar for user {MemberId}", id); | ||||
| 
 | ||||
|         var user = await db.Users.FindAsync(id); | ||||
|         User? user = await db.Users.FindAsync(id); | ||||
|         if (user == null) | ||||
|         { | ||||
|             _logger.Warning( | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue