diff options
author | TAMARA JERINIC <tamara.jerinic@gmail.com> | 2022-11-29 14:39:01 +0100 |
---|---|---|
committer | TAMARA JERINIC <tamara.jerinic@gmail.com> | 2022-11-29 14:39:01 +0100 |
commit | 27afef68aab5dbfcf8d1317a4c69f68c841a2f38 (patch) | |
tree | 78f1ff88f64b8c2ac5fdd1e2456e306c8243dc22 | |
parent | 3fffec28580562d50b8c8c1626b050ec40771176 (diff) |
Dodata funkcija za prikaz pratilaca prijavljenog korisnika.
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 |