feat: added Reports to DB
This commit is contained in:
parent
e21ac0d3d7
commit
963711adfb
5 changed files with 67 additions and 0 deletions
|
@ -8,6 +8,7 @@ internal sealed class AppDBContext : DbContext
|
|||
public DbSet<PostData> Posts { get; set; }
|
||||
public DbSet<ImageData> Images { get; set; }
|
||||
public DbSet<CommentData> Comments { get; set; }
|
||||
public DbSet<ReportData> Reports { get; set; }
|
||||
|
||||
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
|
||||
=> optionsBuilder.UseSqlite("Data Source=./Data/Nils.db");
|
||||
|
@ -31,5 +32,18 @@ internal sealed class AppDBContext : DbContext
|
|||
mb.Entity<UserData>()
|
||||
.HasMany(user => user.Comments)
|
||||
.WithOne(comment => comment.User);
|
||||
|
||||
mb.Entity<ReportData>()
|
||||
.HasOne(report => report.UserReported)
|
||||
.WithMany(user => user.RecivedReports);
|
||||
mb.Entity<ReportData>()
|
||||
.HasOne(report => report.UserReporter)
|
||||
.WithMany(user => user.SubmittedReports);
|
||||
mb.Entity<ReportData>()
|
||||
.HasOne(report => report.ReportedPost)
|
||||
.WithOne(post => post.Report);
|
||||
mb.Entity<ReportData>()
|
||||
.HasOne(report => report.ReportedComment)
|
||||
.WithOne(comment => comment.Report);
|
||||
}
|
||||
}
|
|
@ -39,4 +39,6 @@ public class CommentData
|
|||
[Required]
|
||||
public long CreatedAt { get; set; }
|
||||
|
||||
public ReportData? Report { get; set; }
|
||||
|
||||
}
|
|
@ -40,4 +40,6 @@ public class PostData
|
|||
public string Board { get; set; }
|
||||
|
||||
public List<CommentData> Comments { get; set; }
|
||||
|
||||
public ReportData? Report { get; set; }
|
||||
}
|
45
ImageBoardServerApp/Data/Repository/ReportsRepository.cs
Normal file
45
ImageBoardServerApp/Data/Repository/ReportsRepository.cs
Normal file
|
@ -0,0 +1,45 @@
|
|||
using Microsoft.EntityFrameworkCore;
|
||||
|
||||
namespace ImageBoardServerApp.Data.Repository;
|
||||
|
||||
public static class ReportsRepository
|
||||
{
|
||||
public static async Task<List<ReportData>> getReportsAsync()
|
||||
{
|
||||
await using var db = new AppDBContext();
|
||||
return await db.Reports.ToListAsync();
|
||||
}
|
||||
|
||||
public static async Task<ReportData> getReportByIdAsync(int reportId)
|
||||
{
|
||||
await using var db = new AppDBContext();
|
||||
return await db.Reports.FirstOrDefaultAsync(report => report.ReportID == reportId);
|
||||
}
|
||||
|
||||
public static async Task<int> createReportAsync(ReportData reportData)
|
||||
{
|
||||
await using var db = new AppDBContext();
|
||||
await db.Reports.AddAsync(reportData);
|
||||
if (await db.SaveChangesAsync() >= 1)
|
||||
{
|
||||
return reportData.ReportID;
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static async Task<bool> updateReportAsync(ReportData reportData)
|
||||
{
|
||||
await using var db = new AppDBContext();
|
||||
db.Reports.Update(reportData);
|
||||
return await db.SaveChangesAsync() >= 1;
|
||||
}
|
||||
|
||||
public static async Task<bool> deleteReportAsync(int reportId)
|
||||
{
|
||||
await using var db = new AppDBContext();
|
||||
ReportData reportData = await getReportByIdAsync(reportId);
|
||||
db.Remove(reportData);
|
||||
return await db.SaveChangesAsync() >= 1;
|
||||
}
|
||||
}
|
|
@ -33,4 +33,8 @@ public class UserData
|
|||
|
||||
[Required]
|
||||
public string Role { get; set; }
|
||||
|
||||
public List<ReportData> SubmittedReports { get; set; }
|
||||
|
||||
public List<ReportData> RecivedReports { get; set; }
|
||||
}
|
Loading…
Reference in a new issue