aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Services/Services/FeedService.cs
diff options
context:
space:
mode:
authortranstrike <transtrike@gmail.com>2021-01-26 10:55:25 +0200
committertranstrike <transtrike@gmail.com>2021-01-26 10:55:25 +0200
commitd2bc08c0dcd6f0dc0822333bbb00c9fc851f49cb (patch)
tree0987a60a73a13ac7894ca01a1edc3274327d5cbe /src/DevHive.Services/Services/FeedService.cs
parentf910a2a63cb83b35c6589591400a69c8f7f7917c (diff)
downloadDevHive-d2bc08c0dcd6f0dc0822333bbb00c9fc851f49cb.tar
DevHive-d2bc08c0dcd6f0dc0822333bbb00c9fc851f49cb.tar.gz
DevHive-d2bc08c0dcd6f0dc0822333bbb00c9fc851f49cb.zip
Brief testing of GetPost
Diffstat (limited to 'src/DevHive.Services/Services/FeedService.cs')
-rw-r--r--src/DevHive.Services/Services/FeedService.cs47
1 files changed, 47 insertions, 0 deletions
diff --git a/src/DevHive.Services/Services/FeedService.cs b/src/DevHive.Services/Services/FeedService.cs
new file mode 100644
index 0000000..cae986f
--- /dev/null
+++ b/src/DevHive.Services/Services/FeedService.cs
@@ -0,0 +1,47 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using AutoMapper;
+using DevHive.Data.Interfaces.Repositories;
+using DevHive.Data.Models;
+using DevHive.Services.Interfaces;
+using DevHive.Services.Models;
+using DevHive.Services.Models.Post.Post;
+
+namespace DevHive.Services.Services
+{
+ public class FeedService : IFeedService
+ {
+ private readonly IMapper _mapper;
+ private readonly IFeedRepository _feedRepository;
+ private readonly IUserRepository _userRepository;
+
+ public FeedService(IFeedRepository feedRepository, IUserRepository userRepository, IMapper mapper)
+ {
+ this._feedRepository = feedRepository;
+ this._userRepository = userRepository;
+ this._mapper = mapper;
+ }
+
+ public async Task<ReadPageServiceModel> GetPage(GetPageServiceModel model)
+ {
+ User user = await this._userRepository.GetByIdAsync(model.UserId) ??
+ throw new ArgumentException("User doesn't exist!");
+
+ List<User> friendsList = user.Friends.ToList();
+ // if(friendsList.Count == 0)
+ // throw new ArgumentException("This user does not have any friends!");
+
+ List<Post> posts = await this._feedRepository
+ .GetFriendsPosts(friendsList, model.FirstRequestIssued, model.PageNumber, model.PageSize) ??
+ throw new ArgumentException("No posts to query.");
+
+ ReadPageServiceModel readPageServiceModel = new();
+ foreach (Post post in posts)
+ readPageServiceModel.Posts.Add(this._mapper.Map<ReadPostServiceModel>(post));
+
+ return readPageServiceModel;
+ }
+ }
+}