Change backend for better image loading
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
using MistoxWebsite.Server.Services.DatabaseService;
|
||||
using MistoxWebsite.Server.Entities;
|
||||
using System.Security.Claims;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace MistoxWebsite.Server.Controllers {
|
||||
[ApiController]
|
||||
@@ -9,8 +10,6 @@ namespace MistoxWebsite.Server.Controllers {
|
||||
|
||||
DatabaseService _databaseService;
|
||||
|
||||
public static Product[] CatalogItems = [];
|
||||
|
||||
public ProductController( DatabaseService databaseService ) {
|
||||
_databaseService = databaseService;
|
||||
}
|
||||
@@ -72,7 +71,6 @@ namespace MistoxWebsite.Server.Controllers {
|
||||
}
|
||||
obj.Images = building.ToArray();
|
||||
await _databaseService.NewProduct(obj);
|
||||
await UpdateStore();
|
||||
return true;
|
||||
} catch {
|
||||
return false;
|
||||
@@ -84,7 +82,6 @@ namespace MistoxWebsite.Server.Controllers {
|
||||
public async Task<ActionResult<bool>> UpdateProduct( [FromBody] Product obj ) {
|
||||
try {
|
||||
await _databaseService.UpdateProduct( obj );
|
||||
await UpdateStore();
|
||||
return true;
|
||||
} catch {
|
||||
return false;
|
||||
@@ -93,31 +90,45 @@ namespace MistoxWebsite.Server.Controllers {
|
||||
|
||||
[Route( "api/product/get" )]
|
||||
[HttpPost]
|
||||
public ActionResult<Product> GetProduct( [FromBody] Product product ) {
|
||||
public async Task<ActionResult<Product>> GetProduct( [FromBody] int productID ) {
|
||||
try {
|
||||
foreach( Product? prod in CatalogItems ) {
|
||||
if( product.ID == prod.ID ) {
|
||||
return prod;
|
||||
}
|
||||
Product? x = await _databaseService.GetProduct(productID);
|
||||
if (x != null) {
|
||||
return x;
|
||||
} else {
|
||||
return NotFound();
|
||||
}
|
||||
product.ID = -1;
|
||||
return product;
|
||||
} catch {
|
||||
return new Product();
|
||||
return NotFound();
|
||||
}
|
||||
}
|
||||
|
||||
[Route( "api/product/getall" )]
|
||||
[HttpPost]
|
||||
public ActionResult<Product[]> GetAllProducts() {
|
||||
public async Task<Product[]> GetAllProducts() {
|
||||
try {
|
||||
return CatalogItems.ToArray();
|
||||
return await _databaseService.GetAllProducts();
|
||||
} catch {
|
||||
return new Product[0];
|
||||
return Array.Empty<Product>();
|
||||
}
|
||||
}
|
||||
|
||||
[Route( "api/product/getowned" )]
|
||||
[Route( "api/productimage/get" )]
|
||||
[HttpGet]
|
||||
public async Task<IActionResult> GetProductImage( int ProductID, int ImageID ) {
|
||||
try {
|
||||
ProductImage? img = await _databaseService.GetImage(ProductID, ImageID);
|
||||
if (img != null) {
|
||||
return File(img.Image, "Image/*");
|
||||
} else {
|
||||
return NotFound();
|
||||
}
|
||||
} catch {
|
||||
return NotFound();
|
||||
}
|
||||
}
|
||||
|
||||
[Route("api/product/getowned")]
|
||||
[HttpPost]
|
||||
public async Task<ActionResult<Receipt[]>> GetOwnedProduct() {
|
||||
try {
|
||||
@@ -180,24 +191,6 @@ namespace MistoxWebsite.Server.Controllers {
|
||||
}
|
||||
}
|
||||
|
||||
[Route( "api/product/hotreload" )]
|
||||
[HttpPost] // Not implimented in admin panel
|
||||
public async Task UpdateStore() {
|
||||
await HotReload( _databaseService );
|
||||
}
|
||||
|
||||
public static async Task HotReload( DatabaseService ds ) {
|
||||
try {
|
||||
CatalogItems = await ds.GetAllProducts();
|
||||
} catch {
|
||||
CatalogItems = new Product[]{
|
||||
new Product() { ID = 0, Name = "offline prod1", Cost = 100, Description = "offline desc" },
|
||||
new Product() { ID = 1, Name = "offline prod2", Cost = 100, Description = "offline desc" },
|
||||
new Product() { ID = 2, Name = "offline prod3", Cost = 100, Description = "offline desc" }
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user