-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Latest libxmtp - permissions and description field updates (#360)
* update libxmtp-swift references * Updated for latest bindings, fixed tests * Add group description functions * Added funcitons for updating permissions and update permission test --------- Co-authored-by: cameronvoell <[email protected]>
- Loading branch information
1 parent
f466b45
commit 77735dc
Showing
8 changed files
with
198 additions
and
36 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
import Foundation | ||
import LibXMTP | ||
|
||
public enum PermissionOption { | ||
case allow | ||
case deny | ||
case admin | ||
case superAdmin | ||
case unknown | ||
|
||
static func toFfiPermissionPolicy(option: PermissionOption) -> FfiPermissionPolicy { | ||
switch option { | ||
case .allow: | ||
return .allow | ||
case .deny: | ||
return .deny | ||
case .admin: | ||
return .admin | ||
case .superAdmin: | ||
return .superAdmin | ||
case .unknown: | ||
return .other | ||
} | ||
} | ||
|
||
static func fromFfiPermissionPolicy(ffiPolicy: FfiPermissionPolicy) -> PermissionOption { | ||
switch ffiPolicy { | ||
case .allow: | ||
return .allow | ||
case .deny: | ||
return .deny | ||
case .admin: | ||
return .admin | ||
case .superAdmin: | ||
return .superAdmin | ||
case .doesNotExist, .other: | ||
return .unknown | ||
} | ||
} | ||
} | ||
|
||
public enum GroupPermissionPreconfiguration { | ||
case allMembers | ||
case adminOnly | ||
|
||
static func toFfiGroupPermissionOptions(option: GroupPermissionPreconfiguration) -> FfiGroupPermissionsOptions { | ||
switch option { | ||
case .allMembers: | ||
return .allMembers | ||
case .adminOnly: | ||
return .adminOnly | ||
} | ||
} | ||
} | ||
|
||
public class PermissionPolicySet { | ||
let ffiPermissionPolicySet: FfiPermissionPolicySet | ||
|
||
init(ffiPermissionPolicySet: FfiPermissionPolicySet) { | ||
self.ffiPermissionPolicySet = ffiPermissionPolicySet | ||
} | ||
|
||
var addMemberPolicy: PermissionOption { | ||
return PermissionOption.fromFfiPermissionPolicy(ffiPolicy: ffiPermissionPolicySet.addMemberPolicy) | ||
} | ||
|
||
var removeMemberPolicy: PermissionOption { | ||
return PermissionOption.fromFfiPermissionPolicy(ffiPolicy: ffiPermissionPolicySet.removeMemberPolicy) | ||
} | ||
|
||
var addAdminPolicy: PermissionOption { | ||
return PermissionOption.fromFfiPermissionPolicy(ffiPolicy: ffiPermissionPolicySet.addAdminPolicy) | ||
} | ||
|
||
var removeAdminPolicy: PermissionOption { | ||
return PermissionOption.fromFfiPermissionPolicy(ffiPolicy: ffiPermissionPolicySet.removeAdminPolicy) | ||
} | ||
|
||
var updateGroupNamePolicy: PermissionOption { | ||
return PermissionOption.fromFfiPermissionPolicy(ffiPolicy: ffiPermissionPolicySet.updateGroupNamePolicy) | ||
} | ||
|
||
var updateGroupDescriptionPolicy: PermissionOption { | ||
return PermissionOption.fromFfiPermissionPolicy(ffiPolicy: ffiPermissionPolicySet.updateGroupDescriptionPolicy) | ||
} | ||
|
||
var updateGroupImagePolicy: PermissionOption { | ||
return PermissionOption.fromFfiPermissionPolicy(ffiPolicy: ffiPermissionPolicySet.updateGroupImageUrlSquarePolicy) | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters