1 module konnexengine.ui.utilities; 2 3 import std.conv : to; 4 import std.uuid: UUID, parseUUID; 5 6 import vibe.db.redis.redis: RedisDatabase; 7 import vibe.data.json : Json, parseJsonString; 8 import vibe.http.server : HTTPServerRequest; 9 import konnexengine.app.data : AuthState, AppData; 10 import konnexengine.user.blueprint; 11 12 import dotenv; 13 14 T prepare(T)(T t, AppData appData, AuthState authState, Json videoData) 15 { 16 t.ui.name = appData.name; 17 t.ui.page = appData.page; 18 t.ui.auth["signup"] = authState.signup; 19 t.ui.auth["pass_reqd"] = authState.passwordRequired; 20 t.ui.auth["success"] = authState.success; 21 t.ui.auth["login"] = authState.login; 22 t.ui.auth["valid"] = authState.valid; 23 24 t.content.videos = videoData["items"]; 25 t.content.currentVideo = appData.currentVideo; 26 27 t.user.accessToken = appData.accessToken; 28 t.user.email = ""; 29 t.user.username = appData.username; 30 31 return t; 32 } 33 34 void configure(AppData* appData, Json videoData) 35 { 36 Env.load(".env", false); 37 appData.page = "index"; 38 39 appData.name = "Konnex Accounts"; 40 // channel.name(videos[0]["snippet"]["channelTitle"].get!string); 41 appData.currentVideo = videoData["items"][0]; 42 // logInfo(videoData.to!string); 43 44 import std.file; 45 46 if (!exists("videos.json")) 47 { 48 writeVideosToFile(videoData); 49 } 50 } 51 52 void writeVideosToFile(Json videoData) 53 { 54 string vids = videoData.toPrettyString(); 55 56 import std.file : write; 57 58 write("videos.json", vids); 59 } 60 61 void cacheUser(string r, RedisDatabase* _user, RedisDatabase* _db) 62 { 63 Json data = parseJsonString(r); 64 string id = data["id"].to!string; 65 string email = data["email"].to!string; 66 string namespace = data["namespace"].to!string; 67 68 _user.set(email,id); 69 // _user.set(username, id); 70 71 72 _user.hset("user: " ~ id, "id", id); 73 _user.hset("user: " ~ id, "email", email); 74 // foreach (eml; user.email()) 75 // { 76 // _user.hset("user:" ~ id, "email", eml.get()); 77 // } 78 _user.hset("user: " ~ id, "namespace", namespace); 79 // _user.hset("user: " ~ id, "password", password); 80 81 _user.hgetAll("user:" ~ id); 82 } 83 84 void cacheUserTokens(string user, string accessToken, RedisDatabase* _user) 85 { 86 string id = user; 87 _user.set(id,accessToken); 88 } 89 90 void cacheUserPage(string user, string page, RedisDatabase* _page) 91 { 92 string id = user; 93 _page.set(id,page); 94 } 95 96 void cacheUserKomponent(string user, string komponent, RedisDatabase* _komponent) 97 { 98 string id = user; 99 _komponent.set(id,komponent); 100 } 101 102 //