Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,16 @@
# Change Log

## 18.1.0

* Added: Email metadata fields to `User` (`emailCanonical`, `emailIsFree`, `emailIsDisposable`, `emailIsCorporate`, `emailIsCanonical`).
* Added: `Membership.userAccessedAt` field.
* Updated: Requests now send an explicit `accept` header matching each endpoint's response type.

## 18.0.0

* Breaking: `avatars.getScreenshot` `theme` parameter now uses the `BrowserTheme` enum
* Breaking: Removed generic type parameters from `presences` service methods
* Added: `BrowserTheme` enum
* Replaced: `BrowserTheme` enum
* Updated: `Presence` model is now concrete and adds a `metadata` field

## 17.1.1
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ Add the package to your `Package.swift` dependencies:

```swift
dependencies: [
.package(url: "git@github.com:appwrite/sdk-for-apple.git", from: "18.0.0"),
.package(url: "git@github.com:appwrite/sdk-for-apple.git", from: "18.1.0"),
],
```

Expand Down
8 changes: 4 additions & 4 deletions Sources/Appwrite/Client.swift
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ open class Client {
"x-sdk-name": "Apple",
"x-sdk-platform": "client",
"x-sdk-language": "apple",
"x-sdk-version": "18.0.0",
"x-sdk-version": "18.1.0",
"x-appwrite-response-format": "1.9.5"
]

Expand Down Expand Up @@ -108,7 +108,6 @@ open class Client {
///
open func setProject(_ value: String) -> Client {
config["project"] = value
_ = addHeader(key: "X-Appwrite-Project", value: value)
return self
}
Comment on lines 109 to 112

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 setProject no longer adds the header globally; per-method fallback sends empty string

Previously setProject called addHeader(key: "X-Appwrite-Project", value: value) so the header was injected into every request automatically. That line was removed, and every service method now reads client.config["project"] ?? "". If a caller never invokes setProject, every request will now send X-Appwrite-Project: "" instead of omitting the header entirely. An empty-string project header will reach the server and may produce a misleading 404/401 rather than a clear "project not configured" error. Consider at minimum an assertion or a guard in setProject, or restoring the addHeader call and removing the per-method duplication.


Expand Down Expand Up @@ -384,7 +383,8 @@ open class Client {
let apiPath: String = "/ping"

let apiHeaders: [String: String] = [
"content-type": "application/json"
"content-type": "application/json",
"X-Appwrite-Project": config["project"] ?? ""
]

return try await call(
Expand Down Expand Up @@ -415,7 +415,7 @@ open class Client {
let validParams = params.filter { $0.value != nil }

let queryParameters = method == "GET" && !validParams.isEmpty
? "?" + parametersToQueryString(params: validParams)
? (path.contains("?") ? "&" : "?") + parametersToQueryString(params: validParams)
: ""

var request = HTTPClientRequest(url: endPoint + path + queryParameters)
Expand Down
Loading