Skip to content

Commit

Permalink
Remove pinned frame url (#464)
Browse files Browse the repository at this point in the history
* remove pinned frame url from ios

* update libxmtp ref

* update libxmtp ref, default history sync on

* fix tests; verify can disable history sync

* add comment on history sync message test

---------

Co-authored-by: cameronvoell <[email protected]>
Co-authored-by: Cameron Voell <[email protected]>
  • Loading branch information
3 people authored Feb 7, 2025
1 parent 90304d6 commit 62632cc
Show file tree
Hide file tree
Showing 9 changed files with 56 additions and 129 deletions.
4 changes: 2 additions & 2 deletions Package.resolved
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@
"kind" : "remoteSourceControl",
"location" : "https://github.com/xmtp/libxmtp-swift.git",
"state" : {
"revision" : "c9d3bdff9ead5d70a803d290de4eb75c9e9fc4f2",
"version" : "3.0.21"
"revision" : "dbdd1b31656ef8973ec305c030745b361f3b335c",
"version" : "3.0.23"
}
},
{
Expand Down
2 changes: 1 addition & 1 deletion Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ let package = Package(
.package(url: "https://github.com/bufbuild/connect-swift", exact: "1.0.0"),
.package(url: "https://github.com/apple/swift-docc-plugin.git", from: "1.4.3"),
.package(url: "https://github.com/krzyzanowskim/CryptoSwift.git", exact: "1.8.3"),
.package(url: "https://github.com/xmtp/libxmtp-swift.git", exact: "3.0.21")
.package(url: "https://github.com/xmtp/libxmtp-swift.git", exact: "3.0.23")
],
targets: [
.target(
Expand Down
42 changes: 27 additions & 15 deletions Sources/XMTPiOS/Client.swift
Original file line number Diff line number Diff line change
Expand Up @@ -54,21 +54,33 @@ public struct ClientOptions {
public var dbDirectory: String?
public var historySyncUrl: String?

public init(
api: Api = Api(),
codecs: [any ContentCodec] = [],
preAuthenticateToInboxCallback: PreEventCallback? = nil,
dbEncryptionKey: Data,
dbDirectory: String? = nil,
historySyncUrl: String? = nil
) {
self.api = api
self.codecs = codecs
self.preAuthenticateToInboxCallback = preAuthenticateToInboxCallback
self.dbEncryptionKey = dbEncryptionKey
self.dbDirectory = dbDirectory
self.historySyncUrl = historySyncUrl
}
public init(
api: Api = Api(),
codecs: [any ContentCodec] = [],
preAuthenticateToInboxCallback: PreEventCallback? = nil,
dbEncryptionKey: Data,
dbDirectory: String? = nil,
historySyncUrl: String? = nil,
useDefaultHistorySyncUrl: Bool = true
) {
self.api = api
self.codecs = codecs
self.preAuthenticateToInboxCallback = preAuthenticateToInboxCallback
self.dbEncryptionKey = dbEncryptionKey
self.dbDirectory = dbDirectory
if useDefaultHistorySyncUrl && historySyncUrl == nil {
switch api.env {
case .production:
self.historySyncUrl = "https://message-history.production.ephemera.network/"
case .local:
self.historySyncUrl = "http://localhost:5558"
default:
self.historySyncUrl = "https://message-history.dev.ephemera.network/"
}
} else {
self.historySyncUrl = historySyncUrl
}
}
}

actor ApiClientCache {
Expand Down
12 changes: 0 additions & 12 deletions Sources/XMTPiOS/Conversations.swift
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,6 @@ public actor Conversations {
name: String = "",
imageUrlSquare: String = "",
description: String = "",
pinnedFrameUrl: String = "",
messageDisappearingSettings: FfiMessageDisappearingSettings? = nil,
messageExpirationMs: Int64? = nil
) async throws -> Group {
Expand All @@ -290,7 +289,6 @@ public actor Conversations {
name: name,
imageUrlSquare: imageUrlSquare,
description: description,
pinnedFrameUrl: pinnedFrameUrl,
permissionPolicySet: nil,
messageDisappearingSettings: messageDisappearingSettings
)
Expand All @@ -302,7 +300,6 @@ public actor Conversations {
name: String = "",
imageUrlSquare: String = "",
description: String = "",
pinnedFrameUrl: String = "",
messageDisappearingSettings: FfiMessageDisappearingSettings? = nil
) async throws -> Group {
return try await newGroupInternal(
Expand All @@ -311,7 +308,6 @@ public actor Conversations {
name: name,
imageUrlSquare: imageUrlSquare,
description: description,
pinnedFrameUrl: pinnedFrameUrl,
permissionPolicySet: PermissionPolicySet.toFfiPermissionPolicySet(
permissionPolicySet),
messageDisappearingSettings: messageDisappearingSettings
Expand All @@ -324,7 +320,6 @@ public actor Conversations {
name: String = "",
imageUrlSquare: String = "",
description: String = "",
pinnedFrameUrl: String = "",
permissionPolicySet: FfiPermissionPolicySet? = nil,
messageDisappearingSettings: FfiMessageDisappearingSettings? = nil
) async throws -> Group {
Expand All @@ -350,7 +345,6 @@ public actor Conversations {
groupName: name,
groupImageUrlSquare: imageUrlSquare,
groupDescription: description,
groupPinnedFrameUrl: pinnedFrameUrl,
customPermissionPolicySet: permissionPolicySet,
messageDisappearingSettings: messageDisappearingSettings
)
Expand All @@ -364,7 +358,6 @@ public actor Conversations {
name: String = "",
imageUrlSquare: String = "",
description: String = "",
pinnedFrameUrl: String = "",
messageDisappearingSettings: FfiMessageDisappearingSettings? = nil
) async throws -> Group {
return try await newGroupInternalWithInboxIds(
Expand All @@ -375,7 +368,6 @@ public actor Conversations {
name: name,
imageUrlSquare: imageUrlSquare,
description: description,
pinnedFrameUrl: pinnedFrameUrl,
permissionPolicySet: nil,
messageDisappearingSettings: messageDisappearingSettings
)
Expand All @@ -387,7 +379,6 @@ public actor Conversations {
name: String = "",
imageUrlSquare: String = "",
description: String = "",
pinnedFrameUrl: String = "",
messageDisappearingSettings: FfiMessageDisappearingSettings? = nil
) async throws -> Group {
return try await newGroupInternalWithInboxIds(
Expand All @@ -396,7 +387,6 @@ public actor Conversations {
name: name,
imageUrlSquare: imageUrlSquare,
description: description,
pinnedFrameUrl: pinnedFrameUrl,
permissionPolicySet: PermissionPolicySet.toFfiPermissionPolicySet(
permissionPolicySet),
messageDisappearingSettings: messageDisappearingSettings
Expand All @@ -409,7 +399,6 @@ public actor Conversations {
name: String = "",
imageUrlSquare: String = "",
description: String = "",
pinnedFrameUrl: String = "",
permissionPolicySet: FfiPermissionPolicySet? = nil,
messageDisappearingSettings: FfiMessageDisappearingSettings? = nil
) async throws -> Group {
Expand All @@ -425,7 +414,6 @@ public actor Conversations {
groupName: name,
groupImageUrlSquare: imageUrlSquare,
groupDescription: description,
groupPinnedFrameUrl: pinnedFrameUrl,
customPermissionPolicySet: permissionPolicySet,
messageDisappearingSettings: messageDisappearingSettings
)
Expand Down
21 changes: 0 additions & 21 deletions Sources/XMTPiOS/Group.swift
Original file line number Diff line number Diff line change
Expand Up @@ -158,10 +158,6 @@ public struct Group: Identifiable, Equatable, Hashable {
return try ffiGroup.groupDescription()
}

public func groupPinnedFrameUrl() throws -> String {
return try ffiGroup.groupPinnedFrameUrl()
}

public func updateGroupName(groupName: String) async throws {
try await ffiGroup.updateGroupName(groupName: groupName)
}
Expand All @@ -176,13 +172,6 @@ public struct Group: Identifiable, Equatable, Hashable {
groupDescription: groupDescription)
}

public func updateGroupPinnedFrameUrl(groupPinnedFrameUrl: String)
async throws
{
try await ffiGroup.updateGroupPinnedFrameUrl(
pinnedFrameUrl: groupPinnedFrameUrl)
}

public func updateAddMemberPermission(newPermissionOption: PermissionOption)
async throws
{
Expand Down Expand Up @@ -249,16 +238,6 @@ public struct Group: Identifiable, Equatable, Hashable {
metadataField: FfiMetadataField.imageUrlSquare)
}

public func updateGroupPinnedFrameUrlPermission(
newPermissionOption: PermissionOption
) async throws {
try await ffiGroup.updatePermissionPolicy(
permissionUpdateType: FfiPermissionUpdateType.updateMetadata,
permissionPolicyOption: PermissionOption.toFfiPermissionPolicy(
option: newPermissionOption),
metadataField: FfiMetadataField.pinnedFrameUrl)
}

public func updateConsentState(state: ConsentState) async throws {
try ffiGroup.updateConsentState(state: state.toFFI)
}
Expand Down
10 changes: 0 additions & 10 deletions Sources/XMTPiOS/Libxmtp/PermissionPolicySet.swift
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@ public class PermissionPolicySet {
public var updateGroupNamePolicy: PermissionOption
public var updateGroupDescriptionPolicy: PermissionOption
public var updateGroupImagePolicy: PermissionOption
public var updateGroupPinnedFrameUrlPolicy: PermissionOption
public var updateMessageDisappearingPolicy: PermissionOption

public init(
Expand All @@ -76,7 +75,6 @@ public class PermissionPolicySet {
updateGroupNamePolicy: PermissionOption,
updateGroupDescriptionPolicy: PermissionOption,
updateGroupImagePolicy: PermissionOption,
updateGroupPinnedFrameUrlPolicy: PermissionOption,
updateMessageDisappearingPolicy: PermissionOption
) {
self.addMemberPolicy = addMemberPolicy
Expand All @@ -86,7 +84,6 @@ public class PermissionPolicySet {
self.updateGroupNamePolicy = updateGroupNamePolicy
self.updateGroupDescriptionPolicy = updateGroupDescriptionPolicy
self.updateGroupImagePolicy = updateGroupImagePolicy
self.updateGroupPinnedFrameUrlPolicy = updateGroupPinnedFrameUrlPolicy
self.updateMessageDisappearingPolicy = updateMessageDisappearingPolicy
}

Expand All @@ -110,9 +107,6 @@ public class PermissionPolicySet {
updateGroupImageUrlSquarePolicy:
PermissionOption.toFfiPermissionPolicy(
option: permissionPolicySet.updateGroupImagePolicy),
updateGroupPinnedFrameUrlPolicy:
PermissionOption.toFfiPermissionPolicy(
option: permissionPolicySet.updateGroupPinnedFrameUrlPolicy),
updateMessageDisappearingPolicy:
PermissionOption.toFfiPermissionPolicy(
option: permissionPolicySet.updateMessageDisappearingPolicy)
Expand Down Expand Up @@ -141,10 +135,6 @@ public class PermissionPolicySet {
updateGroupImagePolicy: PermissionOption.fromFfiPermissionPolicy(
ffiPolicy: ffiPermissionPolicySet
.updateGroupImageUrlSquarePolicy),
updateGroupPinnedFrameUrlPolicy:
PermissionOption.fromFfiPermissionPolicy(
ffiPolicy: ffiPermissionPolicySet
.updateGroupPinnedFrameUrlPolicy),
updateMessageDisappearingPolicy:
PermissionOption.fromFfiPermissionPolicy(
ffiPolicy: ffiPermissionPolicySet
Expand Down
62 changes: 3 additions & 59 deletions Tests/XMTPTests/GroupPermissionsTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -305,50 +305,6 @@ class GroupPermissionTests: XCTestCase {
try alixGroup.groupDescription(), "alix group description")
}

func testCanUpdatePinnedFrameUrl() async throws {
let fixtures = try await fixtures()
let boGroup = try await fixtures.boClient.conversations.newGroup(
with: [fixtures.alix.address, fixtures.caro.address],
permissions: .adminOnly,
pinnedFrameUrl: "initial url"
)
try await fixtures.alixClient.conversations.sync()
let alixGroup = try await fixtures.alixClient.conversations
.listGroups().first!

// Verify that alix cannot update group pinned frame url
XCTAssertEqual(try boGroup.groupPinnedFrameUrl(), "initial url")
await assertThrowsAsyncError(
try await alixGroup.updateGroupPinnedFrameUrl(
groupPinnedFrameUrl: "https://foo/bar.com")
)

try await alixGroup.sync()
try await boGroup.sync()
XCTAssertEqual(
try boGroup.permissionPolicySet().updateGroupPinnedFrameUrlPolicy,
.admin)

// Update group pinned frame url permissions so alix can update
try await boGroup.updateGroupPinnedFrameUrlPermission(
newPermissionOption: .allow)
try await boGroup.sync()
try await alixGroup.sync()
XCTAssertEqual(
try boGroup.permissionPolicySet().updateGroupPinnedFrameUrlPolicy,
.allow)

// Verify that alix can now update group pinned frame url
try await alixGroup.updateGroupPinnedFrameUrl(
groupPinnedFrameUrl: "https://foo/barz.com")
try await alixGroup.sync()
try await boGroup.sync()
XCTAssertEqual(
try boGroup.groupPinnedFrameUrl(), "https://foo/barz.com")
XCTAssertEqual(
try alixGroup.groupPinnedFrameUrl(), "https://foo/barz.com")
}

func testCanCreateGroupWithCustomPermissions() async throws {
let fixtures = try await fixtures()
let permissionPolicySet = PermissionPolicySet(
Expand All @@ -359,14 +315,12 @@ class GroupPermissionTests: XCTestCase {
updateGroupNamePolicy: PermissionOption.admin,
updateGroupDescriptionPolicy: PermissionOption.allow,
updateGroupImagePolicy: PermissionOption.admin,
updateGroupPinnedFrameUrlPolicy: PermissionOption.deny,
updateMessageDisappearingPolicy: PermissionOption.allow
)
_ = try await fixtures.boClient.conversations
.newGroupCustomPermissions(
with: [fixtures.alix.address, fixtures.caro.address],
permissionPolicySet: permissionPolicySet,
pinnedFrameUrl: "initial url"
permissionPolicySet: permissionPolicySet
)

try await fixtures.alixClient.conversations.sync()
Expand All @@ -387,9 +341,6 @@ class GroupPermissionTests: XCTestCase {
== PermissionOption.allow)
XCTAssert(
alixPermissionSet.updateGroupImagePolicy == PermissionOption.admin)
XCTAssert(
alixPermissionSet.updateGroupPinnedFrameUrlPolicy
== PermissionOption.deny)
}

func testCanCreateGroupWithInboxIdCustomPermissions() async throws {
Expand All @@ -402,14 +353,12 @@ class GroupPermissionTests: XCTestCase {
updateGroupNamePolicy: PermissionOption.admin,
updateGroupDescriptionPolicy: PermissionOption.allow,
updateGroupImagePolicy: PermissionOption.admin,
updateGroupPinnedFrameUrlPolicy: PermissionOption.deny,
updateMessageDisappearingPolicy: PermissionOption.allow
)
_ = try await fixtures.boClient.conversations
.newGroupCustomPermissionsWithInboxIds(
with: [fixtures.alixClient.inboxID, fixtures.caroClient.inboxID],
permissionPolicySet: permissionPolicySet,
pinnedFrameUrl: "initial url"
permissionPolicySet: permissionPolicySet
)

try await fixtures.alixClient.conversations.sync()
Expand All @@ -430,9 +379,6 @@ class GroupPermissionTests: XCTestCase {
== PermissionOption.allow)
XCTAssert(
alixPermissionSet.updateGroupImagePolicy == PermissionOption.admin)
XCTAssert(
alixPermissionSet.updateGroupPinnedFrameUrlPolicy
== PermissionOption.deny)
}

func testCreateGroupWithInvalidPermissionsFails() async throws {
Expand All @@ -446,15 +392,13 @@ class GroupPermissionTests: XCTestCase {
updateGroupNamePolicy: PermissionOption.admin,
updateGroupDescriptionPolicy: PermissionOption.allow,
updateGroupImagePolicy: PermissionOption.admin,
updateGroupPinnedFrameUrlPolicy: PermissionOption.deny,
updateMessageDisappearingPolicy: PermissionOption.allow
)
await assertThrowsAsyncError(
try await fixtures.boClient.conversations
.newGroupCustomPermissions(
with: [fixtures.alix.address, fixtures.caro.address],
permissionPolicySet: permissionPolicySetInvalid,
pinnedFrameUrl: "initial url"
permissionPolicySet: permissionPolicySetInvalid
)
)
}
Expand Down
Loading

0 comments on commit 62632cc

Please sign in to comment.