Skip to content

Commit

Permalink
[MBL-1076] Fix v1 user (#1902)
Browse files Browse the repository at this point in the history
* Parse `isBlocked` correctly

* Prevent blocking self

* Fix isBlocked parsing tests
  • Loading branch information
ifosli committed Dec 7, 2023
1 parent 38716e0 commit bd02759
Show file tree
Hide file tree
Showing 6 changed files with 24 additions and 10 deletions.
Expand Up @@ -198,8 +198,14 @@ final class CommentRepliesViewController: UITableViewController, MessageBannerVi
}

private func handleCommentCellHeaderTapped(in cell: UITableViewCell, _ author: Comment.Author) {
guard AppEnvironment.current.currentUser != nil, featureBlockUsersEnabled() else { return }
guard author.isBlocked == false else { return }
guard
featureBlockUsersEnabled(),
let currentUser = AppEnvironment.current.currentUser,
String(currentUser.id) != author.id,
!author.isBlocked
else {
return
}

let actionSheet = UIAlertController
.blockUserActionSheet(
Expand Down
Expand Up @@ -268,8 +268,14 @@ extension CommentsViewController {

extension CommentsViewController: CommentCellDelegate {
func commentCellDidTapHeader(_ cell: CommentCell, _ author: Comment.Author) {
guard AppEnvironment.current.currentUser != nil, featureBlockUsersEnabled() else { return }
guard author.isBlocked == false else { return }
guard
featureBlockUsersEnabled(),
let currentUser = AppEnvironment.current.currentUser,
String(currentUser.id) != author.id,
!author.isBlocked
else {
return
}

let actionSheet = UIAlertController
.blockUserActionSheet(
Expand Down
Expand Up @@ -224,8 +224,9 @@ extension MessagesViewController: BackingCellDelegate {
extension MessagesViewController: MessageCellDelegate {
func messageCellDidTapHeader(_ cell: MessageCell, _ user: User) {
guard
AppEnvironment.current.currentUser != nil,
featureBlockUsersEnabled(),
let currentUser = AppEnvironment.current.currentUser,
currentUser != user,
!user.isBlocked
else {
return
Expand Down
Expand Up @@ -997,8 +997,9 @@ extension ProjectPageViewController: ProjectPamphletMainCellDelegate {
goToCreatorForProject project: Project
) {
guard
AppEnvironment.current.currentUser != nil,
featureBlockUsersEnabled(),
let currentUser = AppEnvironment.current.currentUser,
currentUser != project.creator,
!project.creator.isBlocked
else {
self.goToCreatorProfile(forProject: project)
Expand Down
4 changes: 2 additions & 2 deletions KsApi/models/User.swift
Expand Up @@ -142,7 +142,7 @@ extension User: Decodable {
case isAdmin = "is_admin"
case isEmailVerified = "is_email_verified"
case isFriend = "is_friend"
case isBlocked = "is_blocked"
case isBlocked
case location
case name
case needsFreshFacebookToken = "needs_fresh_facebook_token"
Expand All @@ -163,7 +163,7 @@ extension User: EncodableType {
result["is_admin"] = self.isAdmin ?? false
result["is_email_verified"] = self.isEmailVerified ?? false
result["is_friend"] = self.isFriend ?? false
result["is_blocked"] = self.isBlocked ?? false
result["isBlocked"] = self.isBlocked ?? false
result["location"] = self.location?.encode()
result["name"] = self.name
result["needs_password"] = self.needsPassword ?? false
Expand Down
4 changes: 2 additions & 2 deletions KsApi/models/UserTests.swift
Expand Up @@ -40,7 +40,7 @@ final class UserTests: XCTestCase {
"is_admin": false,
"is_email_verified": false,
"is_friend": false,
"is_blocked": false,
"isBlocked": false,
"opted_out_of_recommendations": true,
"show_public_profile": false,
"social": true
Expand Down Expand Up @@ -99,7 +99,7 @@ final class UserTests: XCTestCase {
"is_admin": false,
"is_email_verified": false,
"is_friend": false,
"is_blocked": true,
"isBlocked": true,
"opted_out_of_recommendations": true,
"show_public_profile": false,
"social": true
Expand Down

0 comments on commit bd02759

Please sign in to comment.