@@ -5,16 +5,16 @@ import SupabaseStorage
5
5
6
6
/**
7
7
The main class for accessing Supabase functionality
8
-
8
+
9
9
Initialize this class using `.init(supabaseURL: String, supabaseKey: String)`
10
-
10
+
11
11
There are four main classes contained by the `Supabase` class.
12
12
1. `auth`
13
13
2. `database`
14
14
3. `realtime`
15
15
4. `storage`
16
16
Each class listed is available under `Supabase.{name}`, eg: `Supabase.auth`
17
-
17
+
18
18
For more usage information read the README.md
19
19
*/
20
20
public class SupabaseClient {
@@ -25,29 +25,29 @@ public class SupabaseClient {
25
25
private var realtimeUrl : String
26
26
private var authUrl : String
27
27
private var storageUrl : String
28
-
28
+
29
29
/// Auth client for Supabase
30
30
public var auth : GoTrueClient
31
-
31
+
32
32
/// Storage client for Supabase.
33
33
public var storage : SupabaseStorageClient {
34
- var headers : [ String : String ] = [ : ]
35
- headers [ " apikey " ] = supabaseKey
34
+ var headers : [ String : String ] = defaultHeaders
36
35
headers [ " Authorization " ] = " Bearer \( auth. session? . accessToken ?? supabaseKey) "
37
36
return SupabaseStorageClient ( url: storageUrl, headers: headers)
38
37
}
39
-
38
+
40
39
/// Database client for Supabase.
41
40
public var database : PostgrestClient {
42
- var headers : [ String : String ] = [ : ]
43
- headers [ " apikey " ] = supabaseKey
41
+ var headers : [ String : String ] = defaultHeaders
44
42
headers [ " Authorization " ] = " Bearer \( auth. session? . accessToken ?? supabaseKey) "
45
43
return PostgrestClient ( url: restUrl, headers: headers, schema: schema)
46
44
}
47
-
45
+
48
46
/// Realtime client for Supabase
49
47
private var realtime : RealtimeClient
50
-
48
+
49
+ private var defaultHeaders : [ String : String ]
50
+
51
51
/// Init `Supabase` with the provided parameters.
52
52
/// - Parameters:
53
53
/// - supabaseUrl: Unique Supabase project url
@@ -67,12 +67,14 @@ public class SupabaseClient {
67
67
realtimeUrl = " \( supabaseUrl) /realtime/v1 "
68
68
authUrl = " \( supabaseUrl) /auth/v1 "
69
69
storageUrl = " \( supabaseUrl) /storage/v1 "
70
-
70
+
71
+ defaultHeaders = [ " X-Client-Info " : " supabase-swift/0.0.1 " , " apikey " : supabaseKey]
72
+
71
73
auth = GoTrueClient (
72
74
url: authUrl,
73
- headers: [ " apikey " : supabaseKey ] ,
75
+ headers: defaultHeaders ,
74
76
autoRefreshToken: autoRefreshToken
75
77
)
76
- realtime = RealtimeClient ( endPoint: realtimeUrl, params: [ " apikey " : supabaseKey ] )
78
+ realtime = RealtimeClient ( endPoint: realtimeUrl, params: defaultHeaders )
77
79
}
78
80
}
0 commit comments