Skip to content

Commit 4fef0b0

Browse files
committed
figure out django/powersync url's from authProvider
1 parent 770ea64 commit 4fef0b0

File tree

3 files changed

+16
-16
lines changed

3 files changed

+16
-16
lines changed

lib/app_config.dart

Lines changed: 0 additions & 5 deletions
This file was deleted.

lib/powersync.dart

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import 'package:path_provider/path_provider.dart';
55
import 'package:powersync/powersync.dart';
66
import 'package:wger/api_client.dart';
77

8-
import './app_config.dart';
98
import './models/schema.dart';
109

1110
final log = Logger('powersync-django');
@@ -24,10 +23,13 @@ final List<RegExp> fatalResponseCodes = [
2423

2524
class DjangoConnector extends PowerSyncBackendConnector {
2625
PowerSyncDatabase db;
26+
String baseUrl;
27+
String powersyncUrl;
28+
late ApiClient apiClient;
2729

28-
DjangoConnector(this.db);
29-
30-
final ApiClient apiClient = const ApiClient(AppConfig.djangoUrl);
30+
DjangoConnector(this.db, this.baseUrl, this.powersyncUrl) {
31+
apiClient = ApiClient(baseUrl);
32+
}
3133

3234
/// Get a token to authenticate against the PowerSync instance.
3335
@override
@@ -37,7 +39,7 @@ class DjangoConnector extends PowerSyncBackendConnector {
3739
// final wgerSession = await apiClient.getWgerJWTToken();
3840
final session = await apiClient.getPowersyncToken();
3941
// note: we don't set userId and expires property here. not sure if needed
40-
return PowerSyncCredentials(endpoint: AppConfig.powersyncUrl, token: session['token']);
42+
return PowerSyncCredentials(endpoint: this.powersyncUrl, token: session['token']);
4143
}
4244

4345
// Upload pending changes to Postgres via Django backend
@@ -92,7 +94,7 @@ Future<String> getDatabasePath() async {
9294
}
9395

9496
// opens the database and connects if logged in
95-
Future<void> openDatabase(bool connect) async {
97+
Future<void> openDatabase(bool connect, String baseUrl, String powersyncUrl) async {
9698
// Open the local database
9799
if (!_dbInitialized) {
98100
db = PowerSyncDatabase(schema: schema, path: await getDatabasePath(), logger: attachedLogger);
@@ -103,7 +105,8 @@ Future<void> openDatabase(bool connect) async {
103105
if (connect) {
104106
// If the user is already logged in, connect immediately.
105107
// Otherwise, connect once logged in.
106-
final currentConnector = DjangoConnector(db);
108+
109+
final currentConnector = DjangoConnector(db, baseUrl, powersyncUrl);
107110
db.connect(connector: currentConnector);
108111

109112
// TODO: should we respond to login state changing? like here:

lib/screens/home_tabs_screen.dart

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,18 +77,20 @@ class _HomeTabsScreenState extends State<HomeTabsScreen> with SingleTickerProvid
7777

7878
Future<void> _setupPowersync() async {
7979
final authProvider = context.read<AuthProvider>();
80-
print('auth provider says surverurl is ${authProvider.serverUrl}');
81-
await openDatabase(false);
80+
final baseUrl = authProvider.serverUrl!;
81+
final powerSyncUrl = baseUrl.replaceAll(':8000', ':8080');
8282

83-
final connector = DjangoConnector(db);
83+
await openDatabase(false, baseUrl, powerSyncUrl);
84+
85+
final connector = DjangoConnector(db, baseUrl, powerSyncUrl);
8486
try {
8587
// TODO: should we cache these credentials? that's what their demo does?
8688
// we could maybe get the initial token from the /api/v2/login call
8789
final credentials = await connector.fetchCredentials();
8890
print('----------');
8991
print(credentials);
9092
print('----------');
91-
await openDatabase(true);
93+
await openDatabase(true, baseUrl, powerSyncUrl);
9294
} catch (e) {
9395
print('fail' + e.toString());
9496
}

0 commit comments

Comments
 (0)