forked from CyberBloom/CyberBloomBackend
добавил логику
This commit is contained in:
parent
4ca6c0da9b
commit
f3ec89dbe9
@ -34,7 +34,10 @@ public class UsersController : ControllerBase
|
|||||||
await user.Avatar.WriteFileToDirectory();
|
await user.Avatar.WriteFileToDirectory();
|
||||||
var userWr = new User {
|
var userWr = new User {
|
||||||
AvatarUrl = user.Avatar.FileName,
|
AvatarUrl = user.Avatar.FileName,
|
||||||
UserName = user.Username
|
Fio = user.Fio,
|
||||||
|
Specialities = user.Specialities,
|
||||||
|
TelegramBotUrl = user.TelegramBotUrl,
|
||||||
|
|
||||||
};
|
};
|
||||||
await _userManager.CreateAsync(userWr);
|
await _userManager.CreateAsync(userWr);
|
||||||
|
|
||||||
@ -226,6 +229,69 @@ public class ReviewsController : ControllerBase
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[ApiController]
|
||||||
|
[Route("/api/[controller]")]
|
||||||
|
public class QuestionsController : ControllerBase
|
||||||
|
{
|
||||||
|
|
||||||
|
private readonly ApplicationContext _applicationContext;
|
||||||
|
|
||||||
|
public QuestionsController(ApplicationContext applicationContext)
|
||||||
|
{
|
||||||
|
_applicationContext = applicationContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[HttpPost]
|
||||||
|
public async Task<IActionResult> Post([FromBody] Question question)
|
||||||
|
{
|
||||||
|
await _applicationContext.Questions.AddAsync(question);
|
||||||
|
|
||||||
|
await _applicationContext.SaveChangesAsync();
|
||||||
|
|
||||||
|
return Ok(new {
|
||||||
|
question.Id
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpPut]
|
||||||
|
public async Task<IActionResult> Put([FromBody]Question question)
|
||||||
|
{
|
||||||
|
|
||||||
|
var fReview = await _applicationContext.Questions.FirstAsync(r => r.Id == question.Id);
|
||||||
|
|
||||||
|
fReview.Text = question.Text;
|
||||||
|
|
||||||
|
await _applicationContext.SaveChangesAsync();
|
||||||
|
|
||||||
|
return Ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
[HttpGet]
|
||||||
|
public async Task<IActionResult> Get(int id)
|
||||||
|
{
|
||||||
|
var question = await _applicationContext.Questions
|
||||||
|
.FirstAsync(s => s.Id == id);
|
||||||
|
|
||||||
|
|
||||||
|
return Ok(question);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[HttpGet("list")]
|
||||||
|
public IActionResult GetList(int offset, int limit)
|
||||||
|
{
|
||||||
|
var questions = _applicationContext.Questions
|
||||||
|
.Skip(offset)
|
||||||
|
.Take(limit);
|
||||||
|
|
||||||
|
|
||||||
|
return Ok(questions);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[ApiController]
|
[ApiController]
|
||||||
[Route("/api/[controller]")]
|
[Route("/api/[controller]")]
|
||||||
public class ReactionsController : ControllerBase
|
public class ReactionsController : ControllerBase
|
||||||
|
@ -5,13 +5,27 @@ using Microsoft.EntityFrameworkCore;
|
|||||||
public class User : IdentityUser
|
public class User : IdentityUser
|
||||||
{
|
{
|
||||||
public string AvatarUrl { get; set; } = null!;
|
public string AvatarUrl { get; set; } = null!;
|
||||||
|
|
||||||
|
public string Fio { get; set; } = null!;
|
||||||
|
|
||||||
|
public string Specialities { get; set; } = null!;
|
||||||
|
|
||||||
|
public string TelegramBotUrl { get; set; } = null!;
|
||||||
|
|
||||||
|
public int Level { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class UserPost
|
public class UserPost
|
||||||
{
|
{
|
||||||
public IFormFile Avatar { get; set; } = null!;
|
public IFormFile Avatar { get; set; } = null!;
|
||||||
|
|
||||||
|
public string Fio { get; set; } = null!;
|
||||||
|
|
||||||
public string Username { get; set; } = null!;
|
public string Username { get; set; } = null!;
|
||||||
|
|
||||||
|
public string Specialities { get; set; } = null!;
|
||||||
|
|
||||||
|
public string TelegramBotUrl { get; set; } = null!;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class PostMeetingDto
|
public class PostMeetingDto
|
||||||
@ -39,7 +53,11 @@ public class PostMeetingDto
|
|||||||
|
|
||||||
public string Tags { get; set; } = null!;
|
public string Tags { get; set; } = null!;
|
||||||
|
|
||||||
public string VideoUrl { get; set; } = null!;
|
public string Urls { get; set; } = null!;
|
||||||
|
|
||||||
|
public string PlaceAdress { get; set; } = null!;
|
||||||
|
|
||||||
|
public string Duration { get; set; } = null!;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -88,9 +106,14 @@ public class PutMeetingDto
|
|||||||
|
|
||||||
public string Tags { get; set; } = null!;
|
public string Tags { get; set; } = null!;
|
||||||
|
|
||||||
public string VideoUrl { get; set; } = null!;
|
public string Urls { get; set; } = null!;
|
||||||
|
|
||||||
|
public string PlaceAdress { get; set; } = null!;
|
||||||
|
|
||||||
|
public string Duration { get; set; } = null!;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public class Meeting
|
public class Meeting
|
||||||
{
|
{
|
||||||
public long Id { get; set; }
|
public long Id { get; set; }
|
||||||
@ -119,12 +142,11 @@ public class Meeting
|
|||||||
|
|
||||||
public string Tags { get; set; } = null!;
|
public string Tags { get; set; } = null!;
|
||||||
|
|
||||||
public string VideoUrl { get; set; } = null!;
|
public string Urls { get; set; } = null!;
|
||||||
|
|
||||||
|
public string PlaceAdress { get; set; } = null!;
|
||||||
|
|
||||||
// public string MeetingChatUrl { get; set; } = null!;
|
public string Duration { get; set; } = null!;
|
||||||
|
|
||||||
// public string SocialUrls { get; set; } = null!;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -159,6 +181,18 @@ public class PutReviewDto
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class Question
|
||||||
|
{
|
||||||
|
public long Id { get; set; }
|
||||||
|
|
||||||
|
public string Text { get; set; } = null!;
|
||||||
|
|
||||||
|
public long MeetingId { get; set; }
|
||||||
|
|
||||||
|
public string UserId { get; set; } = null!;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public class Review
|
public class Review
|
||||||
{
|
{
|
||||||
public long Id { get; set; }
|
public long Id { get; set; }
|
||||||
@ -183,30 +217,20 @@ public class Review
|
|||||||
public class PostReactionDto
|
public class PostReactionDto
|
||||||
{
|
{
|
||||||
|
|
||||||
public long ReviewId { get; set; }
|
public long QuestionId { get; set; }
|
||||||
|
|
||||||
public string UserId { get; set; } = null!;
|
public string UserId { get; set; } = null!;
|
||||||
|
|
||||||
public bool IsLike { get; set; } = true;
|
public bool IsLike { get; set; } = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public class PutReactionDto
|
|
||||||
{
|
|
||||||
public long Id { get; set; }
|
|
||||||
|
|
||||||
public long ReviewId { get; set; }
|
|
||||||
|
|
||||||
public string UserId { get; set; } = null!;
|
|
||||||
|
|
||||||
public bool IsLike { get; set; } = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public class Reaction
|
public class Reaction
|
||||||
{
|
{
|
||||||
public long Id { get; set; }
|
public long Id { get; set; }
|
||||||
|
|
||||||
public long ReviewId { get; set; }
|
public long QuestionId { get; set; }
|
||||||
|
|
||||||
public string UserId { get; set; } = null!;
|
public string UserId { get; set; } = null!;
|
||||||
|
|
||||||
@ -222,8 +246,11 @@ public class ApplicationContext : IdentityDbContext<User>
|
|||||||
public DbSet<Review> Reviews { get; set; }
|
public DbSet<Review> Reviews { get; set; }
|
||||||
|
|
||||||
public DbSet<Reaction> Reactions { get; set; }
|
public DbSet<Reaction> Reactions { get; set; }
|
||||||
|
|
||||||
public DbSet<UserWriteToMeting> UserWriteToMetings { get; set; }
|
public DbSet<UserWriteToMeting> UserWriteToMetings { get; set; }
|
||||||
|
|
||||||
|
public DbSet<Question> Questions { get; set; }
|
||||||
|
|
||||||
public ApplicationContext(DbContextOptions<ApplicationContext> options)
|
public ApplicationContext(DbContextOptions<ApplicationContext> options)
|
||||||
: base(options)
|
: base(options)
|
||||||
{
|
{
|
||||||
@ -234,9 +261,14 @@ public class ApplicationContext : IdentityDbContext<User>
|
|||||||
{
|
{
|
||||||
base.OnModelCreating(builder);
|
base.OnModelCreating(builder);
|
||||||
builder.Entity<Meeting>().HasMany<Review>().WithOne().HasForeignKey(c => c.MeetingId);
|
builder.Entity<Meeting>().HasMany<Review>().WithOne().HasForeignKey(c => c.MeetingId);
|
||||||
|
builder.Entity<Meeting>().HasMany<Question>().WithOne().HasForeignKey(c => c.MeetingId);
|
||||||
|
|
||||||
builder.Entity<User>().HasMany<Review>().WithOne(r => r.User).HasForeignKey(c => c.UserId);
|
builder.Entity<User>().HasMany<Review>().WithOne(r => r.User).HasForeignKey(c => c.UserId);
|
||||||
builder.Entity<User>().HasMany<Reaction>().WithOne().HasForeignKey(c => c.UserId);
|
builder.Entity<User>().HasMany<Reaction>().WithOne().HasForeignKey(c => c.UserId);
|
||||||
builder.Entity<Review>().HasMany<Reaction>().WithOne().HasForeignKey(c => c.ReviewId);
|
builder.Entity<User>().HasMany<Question>().WithOne().HasForeignKey(c => c.UserId);
|
||||||
|
|
||||||
|
builder.Entity<Question>().HasMany<Reaction>().WithOne().HasForeignKey(c => c.QuestionId);
|
||||||
|
|
||||||
builder.Entity<Meeting>().HasMany<UserWriteToMeting>().WithOne().HasForeignKey(c => c.MeetingId);
|
builder.Entity<Meeting>().HasMany<UserWriteToMeting>().WithOne().HasForeignKey(c => c.MeetingId);
|
||||||
builder.Entity<User>().HasMany<UserWriteToMeting>().WithOne().HasForeignKey(c => c.UserId);
|
builder.Entity<User>().HasMany<UserWriteToMeting>().WithOne().HasForeignKey(c => c.UserId);
|
||||||
}
|
}
|
||||||
|
@ -69,9 +69,12 @@ builder.Services.AddControllers();
|
|||||||
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
|
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
|
||||||
builder.Services.AddEndpointsApiExplorer();
|
builder.Services.AddEndpointsApiExplorer();
|
||||||
builder.Services.AddSwaggerGen();
|
builder.Services.AddSwaggerGen();
|
||||||
|
builder.Services.AddCors();
|
||||||
|
|
||||||
var app = builder.Build();
|
var app = builder.Build();
|
||||||
|
|
||||||
|
app.UseCors(builder => builder.AllowAnyOrigin().AllowAnyMethod());
|
||||||
|
|
||||||
app.UseStaticFiles(new StaticFileOptions
|
app.UseStaticFiles(new StaticFileOptions
|
||||||
{
|
{
|
||||||
FileProvider = new PhysicalFileProvider(
|
FileProvider = new PhysicalFileProvider(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user