aboutsummaryrefslogtreecommitdiff
path: root/Backend/Api
diff options
context:
space:
mode:
authorTAMARA JERINIC <tamara.jerinic@gmail.com>2022-12-13 14:41:52 +0100
committerTAMARA JERINIC <tamara.jerinic@gmail.com>2022-12-13 14:41:52 +0100
commitb6b2ba62aaf4a5b56b0a89639a785ab1a06cf0b4 (patch)
treeffb2d0abecfd14660634c3142eccb3e17e74735d /Backend/Api
parent61f1cd36b0d2263cd1c19f9d44004131639ae776 (diff)
Izmenjena funkcija za filtritanje i sortiranje na back-u i front-u. Izmenjeni dijalozi za filter i sort. Dodate poruke za validaciju.
Diffstat (limited to 'Backend/Api')
-rw-r--r--Backend/Api/Api/Controllers/PostController.cs4
-rw-r--r--Backend/Api/Api/Interfaces/IPostService.cs2
-rw-r--r--Backend/Api/Api/Models/Post.cs4
-rw-r--r--Backend/Api/Api/Services/PostService.cs29
4 files changed, 32 insertions, 7 deletions
diff --git a/Backend/Api/Api/Controllers/PostController.cs b/Backend/Api/Api/Controllers/PostController.cs
index c4156f0..97646c2 100644
--- a/Backend/Api/Api/Controllers/PostController.cs
+++ b/Backend/Api/Api/Controllers/PostController.cs
@@ -140,9 +140,9 @@ namespace Api.Controllers
}
[HttpGet("locations/{id}/posts")]
[Authorize(Roles = "User")]
- public async Task<ActionResult<List<PostSend>>> searchPosts(string id,int page=0,int sorttype=1,int filterdate=1)
+ public async Task<ActionResult<List<PostSend>>> searchPosts(string id,bool filter,int page=0,int sorttype=1,int filterdate=1,int ratingFrom=-1, int ratingTo=-1,int viewsFrom=-1,int viewsTo=-1)
{
- var res = await _postService.SearchPosts(id,page,sorttype,filterdate);
+ var res = await _postService.SearchPosts(id,filter,page,sorttype,filterdate,ratingFrom,ratingTo,viewsFrom,viewsTo);
if (res != null)
{
return Ok(res);
diff --git a/Backend/Api/Api/Interfaces/IPostService.cs b/Backend/Api/Api/Interfaces/IPostService.cs
index 919f3cf..f554df6 100644
--- a/Backend/Api/Api/Interfaces/IPostService.cs
+++ b/Backend/Api/Api/Interfaces/IPostService.cs
@@ -16,7 +16,7 @@ namespace Api.Interfaces
Task<List<CommentSend>> CascadeComments(string parentid, Post p);
Task<Boolean> DeleteComments(string postid, string cmntid,string userid);
Task CascadeDeleteComments(string cmntid, Post p);
- Task<PostSendPage> SearchPosts(string locid, int page = 0, int sorttype = 1, int filterdate = 1);
+ Task<PostSendPage> SearchPosts(string locid,bool filter, int page = 0, int sorttype = 1, int filterdate = 1, int ratingFrom = -1, int ratingTo = -1, int viewsFrom = -1, int viewsTo = -1);
int DateEnumToDays(int filterdate);
Task<List<PostSend>> GetUsersPosts(string id);
Task<List<PostSend>> UserHistory(string userid);
diff --git a/Backend/Api/Api/Models/Post.cs b/Backend/Api/Api/Models/Post.cs
index 955431f..9f7e937 100644
--- a/Backend/Api/Api/Models/Post.cs
+++ b/Backend/Api/Api/Models/Post.cs
@@ -92,7 +92,9 @@ namespace Api.Models
{
VIEWS_DESC=1,
RATING_DESC=2,
- DATE =3
+ DATE =3,
+ DATE_ASC=4,
+
}
public enum FilterDate
{
diff --git a/Backend/Api/Api/Services/PostService.cs b/Backend/Api/Api/Services/PostService.cs
index e6fa9fb..1c8f647 100644
--- a/Backend/Api/Api/Services/PostService.cs
+++ b/Backend/Api/Api/Services/PostService.cs
@@ -348,7 +348,7 @@ namespace Api.Services
}
}
}
- public async Task<PostSendPage> SearchPosts(string locid, int page = 0, int sorttype = 1, int filterdate = 1) // for now sorting by number of ratings , not avg rating
+ public async Task<PostSendPage> SearchPosts(string locid,bool filter, int page = 0, int sorttype = 1, int filterdate = 1, int ratingFrom = -1, int ratingTo = -1, int viewsFrom = -1, int viewsTo = -1)
{
var days = DateEnumToDays(filterdate);
var tosend = new PostSendPage();
@@ -390,6 +390,26 @@ namespace Api.Services
}
}
+ if (filter)
+ {
+ if (ratingFrom >= 0)
+ {
+ ls = ls.FindAll(post => post.ratings > ratingFrom).ToList();
+ }
+ if (ratingTo >= 0)
+ {
+ ls= ls.FindAll(post => post.ratings < ratingTo).ToList();
+ }
+ if (viewsFrom >= 0)
+ {
+ ls = ls.FindAll(post => post.views >viewsFrom).ToList();
+ }
+ if (viewsTo >= 0)
+ {
+ ls = ls.FindAll(post => post.views < viewsTo).ToList();
+ }
+
+ }
switch (sorttype)
{
case 1:
@@ -401,6 +421,9 @@ namespace Api.Services
case 3:
xd = ls.OrderByDescending(x => x.createdAt).ToList();
break;
+ case 4:
+ xd = ls.OrderBy(x => x.createdAt).ToList();
+ break;
default:
xd = ls.OrderByDescending(x => x.views).ToList();
break;
@@ -637,7 +660,7 @@ namespace Api.Services
{
var novi = new Trending();
novi.tagr = trending;
- novi.page = await SearchPosts(trending.tag, 0, 1, 5);
+ novi.page = await SearchPosts(trending.tag, false,0, 1, 5,-1,-1,-1,-1);
tosend.Add(novi);
}
@@ -660,7 +683,7 @@ namespace Api.Services
}
foreach (var elem in inradius)
{
- var locposts = await SearchPosts(elem._id, 0, 1, 1);
+ var locposts = await SearchPosts(elem._id, false,0, 1, 1,-1,-1,-1,-1);
var best = locposts.posts.Take(1).FirstOrDefault();
if (best != null)
tosend.Add(best);