aboutsummaryrefslogtreecommitdiff
path: root/Backend/Api/Api/Services/UserService.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Backend/Api/Api/Services/UserService.cs')
-rw-r--r--Backend/Api/Api/Services/UserService.cs58
1 files changed, 58 insertions, 0 deletions
diff --git a/Backend/Api/Api/Services/UserService.cs b/Backend/Api/Api/Services/UserService.cs
new file mode 100644
index 0000000..787cf6a
--- /dev/null
+++ b/Backend/Api/Api/Services/UserService.cs
@@ -0,0 +1,58 @@
+using Api.Interfaces;
+using Api.Models;
+using MongoDB.Driver;
+
+namespace Api.Services
+{
+ public class UserService : IUserService
+ {
+ private readonly IMongoCollection<User> _users;
+ public UserService(IDatabaseConnection settings, IMongoClient mongoClient)
+ {
+ var database = mongoClient.GetDatabase(settings.DatabaseName);
+ _users = database.GetCollection<User>(settings.UserCollectionName);
+
+ }
+
+ public User createUser(User user)
+ {
+ _users.InsertOne(user);
+ return user;
+ }
+
+ public bool deleteUser(string email)
+ {
+ _users.FindOneAndDelete(x => x.email == email);
+ return true;
+ }
+
+ public User getUserByEmail(string email)
+ {
+ return _users.Find(x => x.email == email).First();
+ }
+
+ public User getUserByUsername(string username)
+ {
+ return _users.Find(x => x.username == username).First();
+ }
+
+ public List<User> getUsers()
+ {
+ return _users.Find(_=>true).ToList();
+ }
+
+ public User updateUser(User user)
+ {
+ /*
+ * ovako je odradjeno da bi radilo i kada se posalje potpuno novi objekat User-a bez generisanog _id polja
+ */
+ User foundUser = _users.Find(x => x.email == user.email).First();
+ if (foundUser!=null && user._id==null)
+ {
+ user._id = foundUser._id;
+ }
+ _users.ReplaceOne(x => x.email == user.email, user);
+ return user;
+ }
+ }
+}