59 lines
1.6 KiB
C#
59 lines
1.6 KiB
C#
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;
|
|
}
|
|
} |