mirror of
https://github.com/simtactics/mysimulation.git
synced 2025-03-22 09:22:24 +00:00
- NioTSO client isn't needed because we're using RayLib - Added FreeSO's API server to handle most backend operations
128 lines
4.8 KiB
C#
Executable file
128 lines
4.8 KiB
C#
Executable file
using FSO.Server.Api.Core.Utils;
|
|
using Microsoft.AspNetCore.Cors;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Net;
|
|
|
|
namespace FSO.Server.Api.Core.Controllers
|
|
{
|
|
[EnableCors]
|
|
[ApiController]
|
|
public class NhoodInfoController : ControllerBase
|
|
{
|
|
[HttpGet]
|
|
[Route("userapi/city/{shardId}/neighborhoods/all")]
|
|
public IActionResult GetAll(int shardId)
|
|
{
|
|
var api = Api.INSTANCE;
|
|
|
|
using (var da = api.DAFactory.Get())
|
|
{
|
|
var nhoods = da.Neighborhoods.All(shardId);
|
|
if (nhoods == null) return ApiResponse.Json(HttpStatusCode.NotFound, new JSONNhoodError("Neighborhoods not found"));
|
|
|
|
List<JSONNhood> nhoodJson = new List<JSONNhood>();
|
|
foreach (var nhood in nhoods)
|
|
{
|
|
nhoodJson.Add(new JSONNhood
|
|
{
|
|
neighborhood_id = nhood.neighborhood_id,
|
|
name = nhood.name,
|
|
description = nhood.description,
|
|
color = nhood.color,
|
|
town_hall_id = nhood.town_hall_id,
|
|
icon_url = nhood.icon_url,
|
|
mayor_id = nhood.mayor_id,
|
|
mayor_elected_date = nhood.mayor_elected_date,
|
|
election_cycle_id = nhood.election_cycle_id
|
|
});
|
|
|
|
}
|
|
var nhoodsJson = new JSONNhoods();
|
|
nhoodsJson.neighborhoods = nhoodJson;
|
|
return ApiResponse.Json(HttpStatusCode.OK, nhoodsJson);
|
|
}
|
|
}
|
|
[HttpGet]
|
|
[Route("userapi/neighborhoods/{nhoodId}")]
|
|
public IActionResult GetByID(uint nhoodId)
|
|
{
|
|
var api = Api.INSTANCE;
|
|
|
|
using (var da = api.DAFactory.Get())
|
|
{
|
|
var nhood = da.Neighborhoods.Get(nhoodId);
|
|
if (nhood == null) return ApiResponse.Json(HttpStatusCode.NotFound, new JSONNhoodError("Neighborhood not found"));
|
|
|
|
var nhoodJson = new JSONNhood
|
|
{
|
|
neighborhood_id = nhood.neighborhood_id,
|
|
name = nhood.name,
|
|
description = nhood.description,
|
|
color = nhood.color,
|
|
town_hall_id = nhood.town_hall_id,
|
|
icon_url = nhood.icon_url,
|
|
mayor_id = nhood.mayor_id,
|
|
mayor_elected_date = nhood.mayor_elected_date,
|
|
election_cycle_id = nhood.election_cycle_id
|
|
};
|
|
return ApiResponse.Json(HttpStatusCode.OK, nhoodJson);
|
|
}
|
|
}
|
|
[HttpGet]
|
|
[Route("userapi/city/{shardId}/neighborhoods/name/{nhoodName}")]
|
|
public IActionResult GetByName(int shardId, string nhoodName)
|
|
{
|
|
var api = Api.INSTANCE;
|
|
|
|
using (var da = api.DAFactory.Get())
|
|
{
|
|
var searchNhood = da.Neighborhoods.SearchExact(shardId, nhoodName, 1).FirstOrDefault();
|
|
if (searchNhood == null) return ApiResponse.Json(HttpStatusCode.NotFound, new JSONNhoodError("Neighborhood not found"));
|
|
|
|
var nhood = da.Neighborhoods.Get((uint)searchNhood.neighborhood_id);
|
|
if (nhood == null) return ApiResponse.Json(HttpStatusCode.NotFound, new JSONNhoodError("Neighborhood not found"));
|
|
|
|
var nhoodJson = new JSONNhood
|
|
{
|
|
neighborhood_id = nhood.neighborhood_id,
|
|
name = nhood.name,
|
|
description = nhood.description,
|
|
color = nhood.color,
|
|
town_hall_id = nhood.town_hall_id,
|
|
icon_url = nhood.icon_url,
|
|
mayor_id = nhood.mayor_id,
|
|
mayor_elected_date = nhood.mayor_elected_date,
|
|
election_cycle_id = nhood.election_cycle_id
|
|
};
|
|
return ApiResponse.Json(HttpStatusCode.OK, nhoodJson);
|
|
}
|
|
}
|
|
}
|
|
public class JSONNhoodError
|
|
{
|
|
public string error;
|
|
public JSONNhoodError(string errorString)
|
|
{
|
|
error = errorString;
|
|
}
|
|
}
|
|
public class JSONNhoods
|
|
{
|
|
public List<JSONNhood> neighborhoods { get; set; }
|
|
}
|
|
public class JSONNhood
|
|
{
|
|
public int neighborhood_id { get; set; }
|
|
public string name { get; set; }
|
|
public string description { get; set; }
|
|
public uint color { get; set; }
|
|
public int? town_hall_id { get; set; }
|
|
public string icon_url { get; set; }
|
|
public uint? mayor_id { get; set; }
|
|
public uint mayor_elected_date { get; set; }
|
|
public uint? election_cycle_id { get; set; }
|
|
|
|
}
|
|
}
|