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