1 | using JetBrains.Annotations;
|
---|
2 | using Utf8Json;
|
---|
3 |
|
---|
4 | namespace 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 | for (int i = 0; i < _parent.webMods.Count; i++) {
|
---|
14 | WebMod webMod = _parent.webMods [i];
|
---|
15 |
|
---|
16 | if (i > 0) {
|
---|
17 | writer.WriteValueSeparator ();
|
---|
18 | }
|
---|
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 () => 2000;
|
---|
57 | }
|
---|
58 | }
|
---|