feat: flag management
This commit is contained in:
		
							parent
							
								
									8bd4449804
								
							
						
					
					
						commit
						d9d48c3cbf
					
				
					 24 changed files with 615 additions and 235 deletions
				
			
		|  | @ -108,6 +108,12 @@ public class CreateDataExportInvocable( | |||
| 
 | ||||
|     private async Task WritePrideFlag(ZipArchive zip, PrideFlag flag) | ||||
|     { | ||||
|         if (flag.Hash == null) | ||||
|         { | ||||
|             _logger.Debug("Flag {FlagId} has a null hash, ignoring it", flag.Id); | ||||
|             return; | ||||
|         } | ||||
| 
 | ||||
|         _logger.Debug("Writing flag {FlagId}", flag.Id); | ||||
| 
 | ||||
|         var flagData = $"""
 | ||||
|  |  | |||
|  | @ -3,6 +3,7 @@ using Foxnouns.Backend.Database; | |||
| using Foxnouns.Backend.Database.Models; | ||||
| using Foxnouns.Backend.Extensions; | ||||
| using Foxnouns.Backend.Services; | ||||
| using Microsoft.EntityFrameworkCore; | ||||
| 
 | ||||
| namespace Foxnouns.Backend.Jobs; | ||||
| 
 | ||||
|  | @ -26,6 +27,18 @@ public class CreateFlagInvocable( | |||
| 
 | ||||
|         try | ||||
|         { | ||||
|             PrideFlag? flag = await db.PrideFlags.FirstOrDefaultAsync(f => | ||||
|                 f.Id == Payload.Id && f.UserId == Payload.UserId | ||||
|             ); | ||||
|             if (flag == null) | ||||
|             { | ||||
|                 _logger.Warning( | ||||
|                     "Got a flag create job for {FlagId} but it doesn't exist, aborting", | ||||
|                     Payload.Id | ||||
|                 ); | ||||
|                 return; | ||||
|             } | ||||
| 
 | ||||
|             (string? hash, Stream? image) = await ImageObjectExtensions.ConvertBase64UriToImage( | ||||
|                 Payload.ImageData, | ||||
|                 256, | ||||
|  | @ -33,16 +46,8 @@ public class CreateFlagInvocable( | |||
|             ); | ||||
|             await objectStorageService.PutObjectAsync(Path(hash), image, "image/webp"); | ||||
| 
 | ||||
|             var flag = new PrideFlag | ||||
|             { | ||||
|                 Id = Payload.Id, | ||||
|                 UserId = Payload.UserId, | ||||
|                 Hash = hash, | ||||
|                 Name = Payload.Name, | ||||
|                 Description = Payload.Description, | ||||
|             }; | ||||
|             db.Add(flag); | ||||
| 
 | ||||
|             flag.Hash = hash; | ||||
|             db.Update(flag); | ||||
|             await db.SaveChangesAsync(); | ||||
| 
 | ||||
|             _logger.Information("Uploaded flag {FlagId} with hash {Hash}", flag.Id, flag.Hash); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue