refactor(backend): use explicit types instead of var by default

This commit is contained in:
sam 2024-12-08 15:07:25 +01:00
parent bc7fd6d804
commit 649988db25
Signed by: sam
GPG key ID: B4EF20DDE721CAA1
52 changed files with 506 additions and 420 deletions

View file

@ -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);

View file

@ -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");

View file

@ -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(

View file

@ -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(