aboutsummaryrefslogtreecommitdiff
path: root/src/DevHive.Services/Interfaces/IUserService.cs
blob: 5ef141f39b1c9739ddaa40284706edc6f9f996aa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
using System;
using System.Threading.Tasks;
using DevHive.Common.Models.Identity;
using DevHive.Services.Models.Identity.User;
using DevHive.Services.Models.Language;
using DevHive.Services.Models.Technology;

namespace DevHive.Services.Interfaces
{
	public interface IUserService
	{
		Task<TokenModel> LoginUser(LoginServiceModel loginModel);
		Task<TokenModel> RegisterUser(RegisterServiceModel registerModel);

		Task<bool> AddFriend(Guid userId, Guid friendId);
		Task<bool> AddLanguageToUser(Guid userId, LanguageServiceModel languageServiceModel);
		Task<bool> AddTechnologyToUser(Guid userId, TechnologyServiceModel technologyServiceModel);

		Task<UserServiceModel> GetFriendById(Guid friendId);
		Task<UserServiceModel> GetUserById(Guid id);

		Task<UserServiceModel> UpdateUser(UpdateUserServiceModel updateModel);

		Task DeleteUser(Guid id);
		Task<bool> RemoveFriend(Guid userId, Guid friendId);
		Task<bool> RemoveLanguageFromUser(Guid userId, LanguageServiceModel languageServiceModel);
		Task<bool> RemoveTechnologyFromUser(Guid userId, TechnologyServiceModel technologyServiceModel);

		Task<bool> ValidJWT(Guid id, string rawTokenData);
	}
}