Ignore:
Timestamp:
Aug 18, 2023, 12:08:10 PM (15 months ago)
Author:
alloc
Message:

21.1.16.2 WebServer release
Added "id"s to messages in log API / event
Added "baseUrl" to mods API for WebMods

Location:
TFP-WebServer/WebServer/src/WebAPI/APIs
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • TFP-WebServer/WebServer/src/WebAPI/APIs/GameData/Mods.cs

    r434 r467  
    1919                                }
    2020                               
    21                                 writer.WriteBeginObject ();
    22 
    2321                                writeModJson (ref writer, webMod);
    24 
    25                                 if (webMod.ReactBundle != null || webMod.CssPath != null) {
    26                                         writer.WriteValueSeparator ();
    27 
    28                                         writer.WritePropertyName ("web");
    29                                         writer.WriteBeginObject ();
    30                                        
    31                                         string webModReactBundle = webMod.ReactBundle;
    32                                         if (webModReactBundle != null) {
    33                                                 writer.WritePropertyName ("bundle");
    34                                                 writer.WriteString (webModReactBundle);
    35                                         }
    36 
    37                                         string webModCssFile = webMod.CssPath;
    38                                         if (webModCssFile != null) {
    39                                                 if (webModReactBundle != null) {
    40                                                         writer.WriteValueSeparator ();
    41                                                 }
    42 
    43                                                 writer.WritePropertyName ("css");
    44                                                 writer.WriteString (webModCssFile);
    45                                         }
    46                                        
    47                                         writer.WriteEndObject ();
    48                                 }
    49 
    50                                 writer.WriteEndObject ();
    5122                        }
    5223
     
    5627                }
    5728
    58                 private void writeModJson (ref JsonWriter _writer, WebMod _webMod) {
     29                private static void writeModJson (ref JsonWriter _writer, WebMod _webMod) {
     30                        _writer.WriteBeginObject ();
     31
    5932                        _writer.WritePropertyName ("name");
    6033                        _writer.WriteString (_webMod.ParentMod.Name);
     
    7952                        _writer.WritePropertyName ("website");
    8053                        _writer.WriteString (_webMod.ParentMod.Website);
     54                       
     55                        writeWebModJson (ref _writer, _webMod);
     56
     57                        _writer.WriteEndObject ();
     58                }
     59
     60                private static void writeWebModJson (ref JsonWriter _writer, WebMod _webMod) {
     61                        if (_webMod.ModUrl != null) {
     62                                _writer.WriteValueSeparator ();
     63
     64                                _writer.WritePropertyName ("web");
     65                                _writer.WriteBeginObject ();
     66                               
     67                                _writer.WritePropertyName ("baseUrl");
     68                                _writer.WriteString (_webMod.ModUrl);
     69
     70                                string webModReactBundle = _webMod.ReactBundle;
     71                                if (webModReactBundle != null) {
     72                                        _writer.WriteValueSeparator ();
     73                                        _writer.WritePropertyName ("bundle");
     74                                        _writer.WriteString (webModReactBundle);
     75                                }
     76
     77                                string webModCssFile = _webMod.CssPath;
     78                                if (webModCssFile != null) {
     79                                        _writer.WriteValueSeparator ();
     80                                        _writer.WritePropertyName ("css");
     81                                        _writer.WriteString (webModCssFile);
     82                                }
     83
     84                                _writer.WriteEndObject ();
     85                        }
    8186                }
    8287
  • TFP-WebServer/WebServer/src/WebAPI/APIs/GameData/Mods.openapi.yaml

    r460 r467  
    3737          type: object
    3838          properties:
     39            baseUrl:
     40              type: string
     41              examples:
     42                - /webmods/TFP_MarkersExample/
     43              description: Base URL of the WebMod folder of this mod. Always ends with a forward slash '/'.
    3944            bundle:
    4045              type: string
    4146              examples:
    42                 - /webmods/Xample_MarkersMod/bundle.js
     47                - /webmods/TFP_MarkersExample/bundle.js
     48              description: URL of the React bundle if the mod has one.
    4349            css:
    4450              type: string
    4551              examples:
    46                 - /webmods/Xample_MarkersMod/styling.css
     52                - /webmods/TFP_MarkersExample/styling.css
     53              description: URL of a styling CSS file if the mod has one.
     54          required:
     55            - baseUrl
    4756      required:
    4857        - name
  • TFP-WebServer/WebServer/src/WebAPI/APIs/Log.openapi.yaml

    r460 r467  
    88    LogEntry:
    99      type: object
    10       properties:
     10      properties:
     11        id:
     12          type: integer
     13          minimum: 0
     14          description: Consecutive ID/number of this log line
    1115        msg:
    1216          type: string
     
    3337          examples:
    3438            - '87123'
    35           description: Time since server was started in milliseconds.
     39          description: Time since server was started in milliseconds
    3640      required:
     41        - id
    3742        - msg
    3843        - type
  • TFP-WebServer/WebServer/src/WebAPI/APIs/LogApi.cs

    r459 r467  
    1212                private static readonly byte[] jsonKeyLastLine = JsonWriter.GetEncodedPropertyNameWithPrefixValueSeparator ("lastLine");
    1313
    14                 private static readonly byte[] jsonMsgKey = JsonWriter.GetEncodedPropertyNameWithBeginObject ("msg");
     14                private static readonly byte[] jsonIdKey = JsonWriter.GetEncodedPropertyNameWithBeginObject ("id");
     15                private static readonly byte[] jsonMsgKey = JsonWriter.GetEncodedPropertyNameWithPrefixValueSeparator ("msg");
    1516                private static readonly byte[] jsonTypeKey = JsonWriter.GetEncodedPropertyNameWithPrefixValueSeparator ("type");
    1617                private static readonly byte[] jsonTraceKey = JsonWriter.GetEncodedPropertyNameWithPrefixValueSeparator ("trace");
     
    5758                                }
    5859
    59                                 writer.WriteRaw (jsonMsgKey);
    60                                 writer.WriteString (logEntry.Message);
    61 
    62                                 writer.WriteRaw (jsonTypeKey);
    63                                 writer.WriteString (logEntry.Type.ToStringCached ());
    64 
    65                                 writer.WriteRaw (jsonTraceKey);
    66                                 writer.WriteString (logEntry.Trace);
    67 
    68                                 writer.WriteRaw (jsonIsotimeKey);
    69                                 writer.WriteString (logEntry.IsoTime);
    70 
    71                                 writer.WriteRaw (jsonUptimeKey);
    72                                 writer.WriteString (logEntry.Uptime.ToString ());
    73 
    74                                 writer.WriteEndObject ();
     60                                WriteLogMessageObject (ref writer, logEntry);
    7561                        }
    7662
     
    8773                        SendEnvelopedResult (_context, ref writer);
    8874                }
     75
     76                public static void WriteLogMessageObject (ref JsonWriter _writer, LogBuffer.LogEntry _logEntry) {
     77                        _writer.WriteRaw (jsonIdKey);
     78                        _writer.WriteInt32 (_logEntry.MessageId);
     79                       
     80                        _writer.WriteRaw (jsonMsgKey);
     81                        _writer.WriteString (_logEntry.Message);
     82
     83                        _writer.WriteRaw (jsonTypeKey);
     84                        _writer.WriteString (_logEntry.Type.ToStringCached ());
     85
     86                        _writer.WriteRaw (jsonTraceKey);
     87                        _writer.WriteString (_logEntry.Trace);
     88
     89                        _writer.WriteRaw (jsonIsotimeKey);
     90                        _writer.WriteString (_logEntry.IsoTime);
     91
     92                        _writer.WriteRaw (jsonUptimeKey);
     93                        _writer.WriteString (_logEntry.Uptime.ToString ());
     94
     95                        _writer.WriteEndObject ();
     96                }
    8997        }
    9098}
Note: See TracChangeset for help on using the changeset viewer.