Moved functionality to write entries to a file to event.d
This commit is contained in:
parent
0da71540bc
commit
f521d39772
2 changed files with 22 additions and 16 deletions
|
@ -2,7 +2,7 @@ module calendarwebapp;
|
||||||
|
|
||||||
import event;
|
import event;
|
||||||
|
|
||||||
import std.datetime.date;
|
import std.datetime.date : Date;
|
||||||
import std.typecons : Nullable;
|
import std.typecons : Nullable;
|
||||||
|
|
||||||
import vibe.vibe;
|
import vibe.vibe;
|
||||||
|
@ -57,8 +57,8 @@ public:
|
||||||
render!("create.dt", _error);
|
render!("create.dt", _error);
|
||||||
}
|
}
|
||||||
|
|
||||||
@anyAuth @errorDisplay!getCreate void postCreate(Date begin, Nullable!Date end,
|
@anyAuth @errorDisplay!getCreate void postCreate(Date begin,
|
||||||
string description, string name, EventType type, bool shout)
|
Nullable!Date end, string description, string name, EventType type, bool shout)
|
||||||
{
|
{
|
||||||
import std.array : split, replace;
|
import std.array : split, replace;
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ public:
|
||||||
description.replace("\r", "").split('\n'), type, shout));
|
description.replace("\r", "").split('\n'), type, shout));
|
||||||
|
|
||||||
auto entries = getEntriesFromFile(fileName) ~ entry;
|
auto entries = getEntriesFromFile(fileName) ~ entry;
|
||||||
fileName.writeFileUTF8(entries.serializeToPrettyJson);
|
entries.writeEntriesToFile(fileName);
|
||||||
render!("showevents.dt", entries);
|
render!("showevents.dt", entries);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -81,19 +81,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
immutable fileName = Path("events.json");
|
immutable fileName = Path("events.json");
|
||||||
|
|
||||||
SessionVar!(AuthInfo, "auth") auth;
|
SessionVar!(AuthInfo, "auth") auth;
|
||||||
|
|
||||||
Entry[] getEntriesFromFile(in Path fileName)
|
|
||||||
{
|
|
||||||
Entry[] entries;
|
|
||||||
if (fileName.existsFile)
|
|
||||||
{
|
|
||||||
deserializeJson(entries, fileName.readFileUTF8.parseJsonString);
|
|
||||||
}
|
|
||||||
return entries;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,9 @@ module event;
|
||||||
import std.datetime.date;
|
import std.datetime.date;
|
||||||
import std.typecons : Nullable;
|
import std.typecons : Nullable;
|
||||||
|
|
||||||
|
import vibe.core.file: existsFile, readFileUTF8, writeFileUTF8;
|
||||||
|
import vibe.core.path;
|
||||||
|
import vibe.data.json : deserializeJson, parseJsonString, serializeToPrettyJson;
|
||||||
import vibe.data.serialization;
|
import vibe.data.serialization;
|
||||||
|
|
||||||
enum EventType
|
enum EventType
|
||||||
|
@ -29,3 +32,18 @@ struct Event
|
||||||
@(vibe.data.serialization.name("etype")) EventType type;
|
@(vibe.data.serialization.name("etype")) EventType type;
|
||||||
bool shout;
|
bool shout;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Entry[] getEntriesFromFile(in Path fileName)
|
||||||
|
{
|
||||||
|
Entry[] entries;
|
||||||
|
if (fileName.existsFile)
|
||||||
|
{
|
||||||
|
deserializeJson(entries, fileName.readFileUTF8.parseJsonString);
|
||||||
|
}
|
||||||
|
return entries;
|
||||||
|
}
|
||||||
|
|
||||||
|
void writeEntriesToFile(in Entry[] entries, in Path fileName)
|
||||||
|
{
|
||||||
|
fileName.writeFileUTF8(entries.serializeToPrettyJson);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue