From cdeed3c3186694a4ea49d02135df186928827521 Mon Sep 17 00:00:00 2001 From: LittleSheep Date: Sun, 29 Jun 2025 19:38:29 +0800 Subject: [PATCH] :bug: Fixes custom app --- .../Developer/CustomAppController.cs | 22 +++++++++---------- .../Developer/DeveloperController.cs | 10 ++------- 2 files changed, 13 insertions(+), 19 deletions(-) diff --git a/DysonNetwork.Sphere/Developer/CustomAppController.cs b/DysonNetwork.Sphere/Developer/CustomAppController.cs index 8441e8d..1407c63 100644 --- a/DysonNetwork.Sphere/Developer/CustomAppController.cs +++ b/DysonNetwork.Sphere/Developer/CustomAppController.cs @@ -7,8 +7,11 @@ namespace DysonNetwork.Sphere.Developer; [Route("/developers/apps")] public class CustomAppController(CustomAppService customAppService, PublisherService ps) : ControllerBase { - [HttpGet("")] - public async Task GetApps([FromQuery] Guid publisherId) + public record CreateAppRequest(Guid PublisherId, string Name, string Slug); + public record UpdateAppRequest(string Name, string Slug); + + [HttpGet] + public async Task ListApps([FromQuery] Guid publisherId) { var apps = await customAppService.GetAppsByPublisherAsync(publisherId); return Ok(apps); @@ -25,10 +28,10 @@ public class CustomAppController(CustomAppService customAppService, PublisherSer return Ok(app); } - [HttpPost("")] - public async Task CreateApp([FromBody] CreateAppDto dto) + [HttpPost] + public async Task CreateApp([FromBody] CreateAppRequest request) { - var app = await customAppService.CreateAppAsync(dto.PublisherId, dto.Name, dto.Slug); + var app = await customAppService.CreateAppAsync(request.PublisherId, request.Name, request.Slug); if (app == null) { return BadRequest("Invalid publisher ID or missing developer feature flag"); @@ -36,10 +39,10 @@ public class CustomAppController(CustomAppService customAppService, PublisherSer return CreatedAtAction(nameof(GetApp), new { id = app.Id }, app); } - [HttpPut("{id:guid}")] - public async Task UpdateApp(Guid id, [FromBody] UpdateAppDto dto) + [HttpPatch("{id:guid}")] + public async Task UpdateApp(Guid id, [FromBody] UpdateAppRequest request) { - var app = await customAppService.UpdateAppAsync(id, dto.Name, dto.Slug); + var app = await customAppService.UpdateAppAsync(id, request.Name, request.Slug); if (app == null) { return NotFound(); @@ -58,6 +61,3 @@ public class CustomAppController(CustomAppService customAppService, PublisherSer return NoContent(); } } - -public record CreateAppDto(Guid PublisherId, string Name, string Slug); -public record UpdateAppDto(string Name, string Slug); \ No newline at end of file diff --git a/DysonNetwork.Sphere/Developer/DeveloperController.cs b/DysonNetwork.Sphere/Developer/DeveloperController.cs index da13e70..14947c7 100644 --- a/DysonNetwork.Sphere/Developer/DeveloperController.cs +++ b/DysonNetwork.Sphere/Developer/DeveloperController.cs @@ -24,13 +24,6 @@ public class DeveloperController( .Where(e => e.Name == name) .FirstOrDefaultAsync(); if (publisher is null) return NotFound(); - if (publisher.AccountId is null) return Ok(publisher); - - var account = await db.Accounts - .Where(a => a.Id == publisher.AccountId) - .Include(a => a.Profile) - .FirstOrDefaultAsync(); - publisher.Account = account; return Ok(publisher); } @@ -119,11 +112,12 @@ public class DeveloperController( if (!isOwner) return StatusCode(403, "You must be the owner of the publisher to join the developer program"); // Check if already has a developer feature + var now = SystemClock.Instance.GetCurrentInstant(); var hasDeveloperFeature = await db.PublisherFeatures .AnyAsync(f => f.PublisherId == publisher.Id && f.Flag == PublisherFeatureFlag.Develop && - (f.ExpiredAt == null || f.ExpiredAt > SystemClock.Instance.GetCurrentInstant())); + (f.ExpiredAt == null || f.ExpiredAt > now)); if (hasDeveloperFeature) return BadRequest("Publisher is already in the developer program");