using InnovEnergy.App.Backend.DataTypes; using InnovEnergy.App.Backend.Relations; namespace InnovEnergy.App.Backend.Database; public static partial class Db { //In this file, we provide all the methods that can be used in order to retrieve information from the database (read) public static Folder? GetFolderById(Int64? id) { return Folders .FirstOrDefault(f => f.Id == id); } public static Installation? GetInstallationById(Int64? id) { return Installations .FirstOrDefault(i => i.Id == id); } public static UserAction? GetActionById(Int64? id) { return UserActions .FirstOrDefault(i => i.Id == id); } public static User? GetUserById(Int64? id) { return Users .FirstOrDefault(u => u.Id == id); } public static User? GetUserByEmail(String email) { return Users .FirstOrDefault(u => u.Email == email); } public static Session? GetSession(String token) { //This method is called in almost every controller function. //After logging in, the frontend receives a session object which contains a token. For all the future REST API calls, this token is used for session authentication. var session = Sessions .FirstOrDefault(s => s.Token == token); if (session is null) { return null; } if (!session.Valid) { Delete(session); return null; } return session; } }