aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTAMARA JERINIC <tamara.jerinic@gmail.com>2022-11-29 14:39:01 +0100
committerTAMARA JERINIC <tamara.jerinic@gmail.com>2022-11-29 14:39:01 +0100
commit27afef68aab5dbfcf8d1317a4c69f68c841a2f38 (patch)
tree78f1ff88f64b8c2ac5fdd1e2456e306c8243dc22
parent3fffec28580562d50b8c8c1626b050ec40771176 (diff)
Dodata funkcija za prikaz pratilaca prijavljenog korisnika.
-rw-r--r--Backend/Api/Api/Controllers/UserController.cs7
-rw-r--r--Backend/Api/Api/Interfaces/IUserService.cs2
-rw-r--r--Backend/Api/Api/Services/UserService.cs43
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowers.kt9
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowing.kt10
-rw-r--r--Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt4
-rw-r--r--Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts.xml3
7 files changed, 68 insertions, 10 deletions
diff --git a/Backend/Api/Api/Controllers/UserController.cs b/Backend/Api/Api/Controllers/UserController.cs
index cc45737..4d7905a 100644
--- a/Backend/Api/Api/Controllers/UserController.cs
+++ b/Backend/Api/Api/Controllers/UserController.cs
@@ -116,5 +116,12 @@ namespace Api.Controllers
{
return Ok(await _userService.Unfollow(id));
}
+
+ [HttpGet("{id}/myFollowers")]
+ [Authorize(Roles = "User")]
+ public async Task<ActionResult<List<UserSend>>> GetMyFollowers()
+ {
+ return Ok(await _userService.GetMyFollowers());
+ }
}
}
diff --git a/Backend/Api/Api/Interfaces/IUserService.cs b/Backend/Api/Api/Interfaces/IUserService.cs
index 5f99733..95dd46d 100644
--- a/Backend/Api/Api/Interfaces/IUserService.cs
+++ b/Backend/Api/Api/Interfaces/IUserService.cs
@@ -35,5 +35,7 @@ namespace Api.Interfaces
Task<Boolean> CheckIfAlreadyFollow(string id);
Task<Boolean> Unfollow(string id);
+ Task<List<UserSend>> GetMyFollowers();
+
}
}
diff --git a/Backend/Api/Api/Services/UserService.cs b/Backend/Api/Api/Services/UserService.cs
index d95b5eb..ec67729 100644
--- a/Backend/Api/Api/Services/UserService.cs
+++ b/Backend/Api/Api/Services/UserService.cs
@@ -535,9 +535,12 @@ namespace Api.Services
continue;
}
UserSend following = new UserSend();
+ following.creationDate = utemp.creationDate;
+ following.name = utemp.name;
following.pfp = utemp.pfp;
following.username = utemp.username;
following.email = utemp.username;
+ following.following = utemp.following;
following.followers = utemp.followers;
following._id = utemp._id;
@@ -621,5 +624,45 @@ namespace Api.Services
}
return false;
}
+
+ public async Task<List<UserSend>> GetMyFollowers()
+ {
+
+ string id = null;
+
+ if (_httpContext.HttpContext.User.FindFirstValue("id") != null)
+ {
+ id = _httpContext.HttpContext.User.FindFirstValue("id").ToString();
+ }
+ User u = await _users.Find(user => user._id == id).FirstOrDefaultAsync();
+ List<UserSend> myfollowers = new List<UserSend>();
+
+ if (u!=null && u.followers != null && u.followers.Count() > 0)
+ {
+ foreach (string userid in u.followers)
+ {
+ User utemp = await _users.Find(user => user._id == userid).FirstOrDefaultAsync();
+ if (utemp == null)
+ {
+ continue;
+ }
+ UserSend follower = new UserSend();
+ follower.creationDate = utemp.creationDate;
+ follower.name = utemp.name;
+ follower.pfp = utemp.pfp;
+ follower.username = utemp.username;
+ follower.email = utemp.username;
+ follower.following = utemp.following;
+ follower.followers = utemp.followers;
+ follower._id = utemp._id;
+
+ myfollowers.Add((UserSend)follower);
+ }
+ return myfollowers;
+ }
+
+ return null;
}
+ }
+
}
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowers.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowers.kt
index 7450134..767c192 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowers.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowers.kt
@@ -44,7 +44,7 @@ class FragmentFollowers : Fragment() {
).show();
}
- //getFollowers()
+ getFollowers()
btnBack.setOnClickListener {
val fragmentProfile = FragmentProfile()
@@ -56,9 +56,10 @@ class FragmentFollowers : Fragment() {
return view
}
- /* fun getFollowers(){
+ fun getFollowers(){
val api = RetrofitHelper.getInstance()
- val data=api.getFollowers(userId)
+ val token= SharedPreferencesHelper.getValue("jwt", requireActivity())
+ val data=api.getMyFollowers("Bearer "+token)
data.enqueue(object : Callback<MutableList<UserReceive>> {
override fun onResponse(
call: Call<MutableList<UserReceive>>,
@@ -80,5 +81,5 @@ class FragmentFollowers : Fragment() {
).show();
}
})
- }*/
+ }
} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowing.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowing.kt
index 6f2ce65..fe52723 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowing.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Fragments/FragmentFollowing.kt
@@ -13,6 +13,7 @@ import com.example.brzodolokacije.Adapters.FollowersAdapter
import com.example.brzodolokacije.Models.UserReceive
import com.example.brzodolokacije.R
import com.example.brzodolokacije.Services.RetrofitHelper
+import com.example.brzodolokacije.Services.SharedPreferencesHelper
import retrofit2.Call
import retrofit2.Callback
import retrofit2.Response
@@ -38,7 +39,7 @@ class FragmentFollowing : Fragment() {
).show();
}
- //getFollowing()
+ getFollowing()
back.setOnClickListener {
val fragmentProfile = FragmentProfile()
@@ -50,9 +51,10 @@ class FragmentFollowing : Fragment() {
return view
}
- /*fun getFollowing(){
+ fun getFollowing(){
val api = RetrofitHelper.getInstance()
- val data=api.getFollowers(userId)
+ val token= SharedPreferencesHelper.getValue("jwt", requireActivity())
+ val data=api.getMyFollowings("Bearer "+token)
data.enqueue(object : Callback<MutableList<UserReceive>> {
override fun onResponse(
call: Call<MutableList<UserReceive>>,
@@ -74,5 +76,5 @@ class FragmentFollowing : Fragment() {
).show();
}
})
- }*/
+ }
} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt
index f753f43..676023f 100644
--- a/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt
+++ b/Client/BrzoDoLokacije/app/src/main/java/com/example/brzodolokacije/Interfaces/IBackendApi.kt
@@ -106,4 +106,8 @@ interface IBackendApi {
@GET("api/Post/posts/{id}/getUserPosts")
fun getUsersPosts(@Header("Authorization") authHeader:String,@Path("id") id:String):Call<MutableList<PostPreview>>
+
+ @GET("/api/user/{id}/myFollowers")
+ fun getMyFollowers(@Header("Authorization") authHeader:String):Call <MutableList<UserReceive>>
+
} \ No newline at end of file
diff --git a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts.xml b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts.xml
index effb6e5..a396416 100644
--- a/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts.xml
+++ b/Client/BrzoDoLokacije/app/src/main/res/layout/fragment_user_posts.xml
@@ -10,8 +10,7 @@ android:orientation="vertical"
<!-- TODO: Update blank fragment layout -->
<androidx.cardview.widget.CardView
- android:layout_marginTop="35dp"
- android:layout_width="match_parent"
+ android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView