source: binary-improvements2/WebServer/src/WebAPI/APIs/WebMods.cs@ 402

Last change on this file since 402 was 402, checked in by alloc, 22 months ago
  • Major refactoring
  • Using Utf8Json for (de)serialization
  • Moving APIs to REST
  • Removing dependencies from WebServer and MapRenderer to ServerFixes
File size: 1.5 KB
Line 
1using JetBrains.Annotations;
2using Utf8Json;
3
4namespace Webserver.WebAPI.APIs {
5 [UsedImplicitly]
6 public class WebMods : AbsRestApi {
7 private readonly byte[] loadedWebMods;
8
9 public WebMods (Web _parent) {
10 JsonWriter writer = new JsonWriter ();
11 writer.WriteBeginArray ();
12
13 bool first = true;
14 foreach (WebMod webMod in _parent.webMods) {
15 if (!first) {
16 writer.WriteValueSeparator ();
17 }
18 first = false;
19
20 writer.WriteBeginObject ();
21
22 writer.WriteString ("name");
23 writer.WriteNameSeparator ();
24 writer.WriteString (webMod.ParentMod.Name);
25
26 string webModReactBundle = webMod.ReactBundle;
27 if (webModReactBundle != null) {
28 writer.WriteValueSeparator ();
29 writer.WriteString ("bundle");
30 writer.WriteNameSeparator ();
31 writer.WriteString (webModReactBundle);
32 }
33
34 string webModCssFile = webMod.CssPath;
35 if (webModCssFile != null) {
36 writer.WriteValueSeparator ();
37 writer.WriteString ("css");
38 writer.WriteNameSeparator ();
39 writer.WriteString (webModCssFile);
40 }
41
42 writer.WriteEndObject ();
43 }
44
45 writer.WriteEndArray ();
46
47 loadedWebMods = writer.ToUtf8ByteArray ();
48 }
49
50 protected override void HandleRestGet (RequestContext _context) {
51 PrepareEnvelopedResult (out JsonWriter writer);
52 writer.WriteRaw (loadedWebMods);
53 SendEnvelopedResult (_context, ref writer);
54 }
55
56 public override int DefaultPermissionLevel () {
57 return 2000;
58 }
59 }
60}
Note: See TracBrowser for help on using the repository browser.