Ignore:
Timestamp:
Aug 6, 2022, 11:32:32 PM (2 years ago)
Author:
alloc
Message:

Big refactoring in Web to pass around a Context instead of a bunch of individual arguments all the time

File:
1 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements2/MapRendering/Web/API/GetPlayerList.cs

    r383 r387  
    55using AllocsFixes.JSON;
    66using AllocsFixes.PersistentData;
    7 using HttpListenerRequest = SpaceWizards.HttpListener.HttpListenerRequest;
    8 using HttpListenerResponse = SpaceWizards.HttpListener.HttpListenerResponse;
    97
    108namespace AllocsFixes.NetConnections.Servers.Web.API {
    11         public class GetPlayerList : WebAPI {
     9        public class GetPlayerList : AbsWebAPI {
    1210                private static readonly Regex numberFilterMatcher =
    1311                        new Regex (@"^(>=|=>|>|<=|=<|<|==|=)?\s*([0-9]+(\.[0-9]*)?)$");
     
    1715#endif
    1816
    19                 public override void HandleRequest (HttpListenerRequest _req, HttpListenerResponse _resp, WebConnection _user,
    20                         int _permissionLevel) {
     17                public override void HandleRequest (RequestContext _context) {
    2118                        AdminTools admTools = GameManager.Instance.adminTools;
    22                         PlatformUserIdentifierAbs userId = _user?.UserId;
    23 
    24                         bool bViewAll = WebConnection.CanViewAllPlayers (_permissionLevel);
     19                        PlatformUserIdentifierAbs userId = _context.Connection?.UserId;
     20
     21                        bool bViewAll = WebConnection.CanViewAllPlayers (_context.PermissionLevel);
    2522
    2623                        // TODO: Sort (and filter?) prior to converting to JSON ... hard as how to get the correct column's data? (i.e. column name matches JSON object field names, not source data)
    2724
    2825                        int rowsPerPage = 25;
    29                         if (_req.QueryString ["rowsperpage"] != null) {
    30                                 int.TryParse (_req.QueryString ["rowsperpage"], out rowsPerPage);
     26                        if (_context.Request.QueryString ["rowsperpage"] != null) {
     27                                int.TryParse (_context.Request.QueryString ["rowsperpage"], out rowsPerPage);
    3128                        }
    3229
    3330                        int page = 0;
    34                         if (_req.QueryString ["page"] != null) {
    35                                 int.TryParse (_req.QueryString ["page"], out page);
     31                        if (_context.Request.QueryString ["page"] != null) {
     32                                int.TryParse (_context.Request.QueryString ["page"], out page);
    3633                        }
    3734
     
    8380                        IEnumerable<JSONObject> list = playerList;
    8481
    85                         foreach (string key in _req.QueryString.AllKeys) {
     82                        foreach (string key in _context.Request.QueryString.AllKeys) {
    8683                                if (!string.IsNullOrEmpty (key) && key.StartsWith ("filter[")) {
    8784                                        string filterCol = key.Substring (key.IndexOf ('[') + 1);
    8885                                        filterCol = filterCol.Substring (0, filterCol.Length - 1);
    89                                         string filterVal = _req.QueryString.Get (key).Trim ();
     86                                        string filterVal = _context.Request.QueryString.Get (key).Trim ();
    9087
    9188                                        list = ExecuteFilter (list, filterCol, filterVal);
     
    9592                        int totalAfterFilter = list.Count ();
    9693
    97                         foreach (string key in _req.QueryString.AllKeys) {
     94                        foreach (string key in _context.Request.QueryString.AllKeys) {
    9895                                if (!string.IsNullOrEmpty (key) && key.StartsWith ("sort[")) {
    9996                                        string sortCol = key.Substring (key.IndexOf ('[') + 1);
    10097                                        sortCol = sortCol.Substring (0, sortCol.Length - 1);
    101                                         string sortVal = _req.QueryString.Get (key);
     98                                        string sortVal = _context.Request.QueryString.Get (key);
    10299
    103100                                        list = ExecuteSort (list, sortCol, sortVal == "0");
     
    120117                        result.Add ("players", playersJsResult);
    121118
    122                         WriteJSON (_resp, result);
     119                        WebUtils.WriteJson (_context.Response, result);
    123120                }
    124121
Note: See TracChangeset for help on using the changeset viewer.