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/ExecuteConsoleCommand.cs

    r382 r387  
    11using System;
    22using System.Net;
    3 using HttpListenerRequest = SpaceWizards.HttpListener.HttpListenerRequest;
    4 using HttpListenerResponse = SpaceWizards.HttpListener.HttpListenerResponse;
    53
    64namespace AllocsFixes.NetConnections.Servers.Web.API {
    7         public class ExecuteConsoleCommand : WebAPI {
    8                 public override void HandleRequest (HttpListenerRequest _req, HttpListenerResponse _resp, WebConnection _user,
    9                         int _permissionLevel) {
    10                         if (string.IsNullOrEmpty (_req.QueryString ["command"])) {
    11                                 _resp.StatusCode = (int) HttpStatusCode.BadRequest;
    12                                 Web.SetResponseTextContent (_resp, "No command given");
     5        public class ExecuteConsoleCommand : AbsWebAPI {
     6                public override void HandleRequest (RequestContext _context) {
     7                        if (string.IsNullOrEmpty (_context.Request.QueryString ["command"])) {
     8                                WebUtils.WriteText (_context.Response, "No command given", HttpStatusCode.BadRequest);
    139                                return;
    1410                        }
    1511
    1612                        WebCommandResult.ResultType responseType =
    17                                 _req.QueryString ["raw"] != null
     13                                _context.Request.QueryString ["raw"] != null
    1814                                        ? WebCommandResult.ResultType.Raw
    19                                         : (_req.QueryString ["simple"] != null
     15                                        : (_context.Request.QueryString ["simple"] != null
    2016                                                ? WebCommandResult.ResultType.ResultOnly
    2117                                                : WebCommandResult.ResultType.Full);
    2218
    23                         string commandline = _req.QueryString ["command"];
     19                        string commandline = _context.Request.QueryString ["command"];
    2420                        string commandPart = commandline.Split (' ') [0];
    2521                        string argumentsPart = commandline.Substring (Math.Min (commandline.Length, commandPart.Length + 1));
     
    2824
    2925                        if (command == null) {
    30                                 _resp.StatusCode = (int) HttpStatusCode.NotFound;
    31                                 Web.SetResponseTextContent (_resp, "Unknown command");
     26                                WebUtils.WriteText (_context.Response, "Unknown command", HttpStatusCode.NotFound);
    3227                                return;
    3328                        }
     
    3530                        int commandPermissionLevel = GameManager.Instance.adminTools.GetCommandPermissionLevel (command.GetCommands ());
    3631
    37                         if (_permissionLevel > commandPermissionLevel) {
    38                                 _resp.StatusCode = (int) HttpStatusCode.Forbidden;
    39                                 Web.SetResponseTextContent (_resp, "You are not allowed to execute this command");
     32                        if (_context.PermissionLevel > commandPermissionLevel) {
     33                                WebUtils.WriteText (_context.Response, "You are not allowed to execute this command", HttpStatusCode.Forbidden);
    4034                                return;
    4135                        }
    4236
    43                         _resp.SendChunked = true;
    44                         WebCommandResult wcr = new WebCommandResult (commandPart, argumentsPart, responseType, _resp);
     37                        _context.Response.SendChunked = true;
     38                        WebCommandResult wcr = new WebCommandResult (commandPart, argumentsPart, responseType, _context.Response);
    4539                        SdtdConsole.Instance.ExecuteAsync (commandline, wcr);
    4640                }
Note: See TracChangeset for help on using the changeset viewer.