Ignore:
Timestamp:
May 17, 2023, 11:05:59 PM (20 months ago)
Author:
alloc
Message:

Added permission management APIs

Location:
binary-improvements2/MarkersMod
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements2/MarkersMod/ModInfo.xml

    r432 r434  
    55        <Description value="Allows placing custom markers on the web map" />
    66        <Author value="Catalysm and Alloc" />
    7         <Version value="21.0.280.0" />
     7        <Version value="21.0.288.0" />
    88        <Website value="" />
    99</xml>
  • binary-improvements2/MarkersMod/src/Markers.cs

    r430 r434  
    2626                                markers.Add (WebUtils.GenerateGuid (), (lat, lng, null));
    2727                        }
     28                       
     29                        GameRandomManager.Instance.FreeGameRandom (random);
    2830                }
    2931
     
    5860
    5961                        if (!markers.TryGetValue (id, out (int, int, string) properties2)) {
    60                                 writer.WriteRaw (JsonEmptyData);
     62                                writer.WriteRaw (WebUtils.JsonEmptyData);
    6163                                SendEnvelopedResult (_context, ref writer, HttpStatusCode.NotFound);
    6264                                return;
     
    7779                        _writer.WriteString (_markerId);
    7880                        _writer.WriteRaw (jsonKeyLat);
    79                         _writer.WriteInt32 (_properties.Item1);
     81                        (int lat, int lng, string icon) = _properties;
     82                        _writer.WriteInt32 (lat);
    8083                        _writer.WriteRaw (jsonKeyLng);
    81                         _writer.WriteInt32 (_properties.Item2);
     84                        _writer.WriteInt32 (lng);
    8285                        _writer.WriteRaw (jsonKeyIcon);
    83                         _writer.WriteString (_properties.Item3 ?? defaultIcon);
     86                        _writer.WriteString (icon ?? defaultIcon);
    8487                        _writer.WriteEndObject ();
    8588                }
    8689
    8790                protected override void HandleRestPost (RequestContext _context, IDictionary<string, object> _jsonInput, byte[] _jsonInputData) {
    88                         if (!TryGetJsonField (_jsonInput, "lat", out int lat)) {
    89                                 SendErrorResult (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_OR_INVALID_LAT");
     91                        if (!JsonCommons.TryGetJsonField (_jsonInput, "lat", out int lat)) {
     92                                SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_OR_INVALID_LAT");
    9093                                return;
    9194                        }
    9295
    93                         if (!TryGetJsonField (_jsonInput, "lng", out int lng)) {
    94                                 SendErrorResult (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_OR_INVALID_LNG");
     96                        if (!JsonCommons.TryGetJsonField (_jsonInput, "lng", out int lng)) {
     97                                SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_OR_INVALID_LNG");
    9598                                return;
    9699                        }
    97100
    98                         TryGetJsonField (_jsonInput, "icon", out string icon);
     101                        JsonCommons.TryGetJsonField (_jsonInput, "icon", out string icon);
    99102                        if (string.IsNullOrEmpty (icon)) {
    100103                                icon = null;
     
    110113
    111114                protected override void HandleRestPut (RequestContext _context, IDictionary<string, object> _jsonInput, byte[] _jsonInputData) {
    112                         if (!TryGetJsonField (_jsonInput, "lat", out int lat)) {
    113                                 SendErrorResult (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_OR_INVALID_LAT");
     115                        if (!JsonCommons.TryGetJsonField (_jsonInput, "lat", out int lat)) {
     116                                SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_OR_INVALID_LAT");
    114117                                return;
    115118                        }
    116119
    117                         if (!TryGetJsonField (_jsonInput, "lng", out int lng)) {
    118                                 SendErrorResult (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_OR_INVALID_LNG");
     120                        if (!JsonCommons.TryGetJsonField (_jsonInput, "lng", out int lng)) {
     121                                SendEmptyResponse (_context, HttpStatusCode.BadRequest, _jsonInputData, "NO_OR_INVALID_LNG");
    119122                                return;
    120123                        }
    121124
    122125                        bool keepIcon = !_jsonInput.TryGetValue ("icon", out _);
    123                         TryGetJsonField (_jsonInput, "icon", out string icon);
     126                        JsonCommons.TryGetJsonField (_jsonInput, "icon", out string icon);
    124127                        if (string.IsNullOrEmpty (icon)) {
    125128                                icon = null;
     
    129132
    130133                        if (!markers.TryGetValue (id, out (int, int, string) properties)) {
    131                                 SendErrorResult (_context, HttpStatusCode.NotFound, _jsonInputData, "ID_NOT_FOUND");
     134                                SendEmptyResponse (_context, HttpStatusCode.NotFound, _jsonInputData, "ID_NOT_FOUND");
    132135                                return;
    133136                        }
     
    154157                        string id = _context.RequestPath;
    155158
    156                         PrepareEnvelopedResult (out JsonWriter writer);
    157                         writer.WriteRaw (JsonEmptyData);
    158                         SendEnvelopedResult (_context, ref writer, markers.Remove (id) ? HttpStatusCode.NoContent : HttpStatusCode.NotFound);
     159                        SendEmptyResponse (_context, markers.Remove (id) ? HttpStatusCode.NoContent : HttpStatusCode.NotFound);
    159160                }
    160161               
Note: See TracChangeset for help on using the changeset viewer.