stashed
This commit is contained in:
4
web_native/lib/api/auth_client/auth_client.dart
Normal file
4
web_native/lib/api/auth_client/auth_client.dart
Normal file
@@ -0,0 +1,4 @@
|
||||
import "package:imagini/api/auth_client/base_auth_client.dart";
|
||||
|
||||
BaseAuthClient getAuthClient(storage) => throw UnsupportedError(
|
||||
'Cannot create a client without dart:html or dart:io.');
|
||||
6
web_native/lib/api/auth_client/base_auth_client.dart
Normal file
6
web_native/lib/api/auth_client/base_auth_client.dart
Normal file
@@ -0,0 +1,6 @@
|
||||
import 'package:http/http.dart';
|
||||
|
||||
abstract class BaseAuthClient implements BaseClient {
|
||||
String getServer();
|
||||
Map<String, String> getHeaders();
|
||||
}
|
||||
56
web_native/lib/api/auth_client/browser_auth_client.dart
Normal file
56
web_native/lib/api/auth_client/browser_auth_client.dart
Normal file
@@ -0,0 +1,56 @@
|
||||
import "package:http/http.dart";
|
||||
import 'package:http/browser_client.dart';
|
||||
import "package:imagini/api/auth_client/base_auth_client.dart";
|
||||
import "package:imagini/core/storage_client/base_storage_client.dart";
|
||||
|
||||
BaseClient getAuthClient(storage) => BrowserAuthClient(storage);
|
||||
|
||||
class BrowserAuthClient extends BrowserClient implements BaseAuthClient {
|
||||
BaseStorageClient _storage;
|
||||
String _cachedServer;
|
||||
String _cachedAccessToken;
|
||||
String _cachedRefreshToken;
|
||||
|
||||
BrowserAuthClient(BaseStorageClient storage) {
|
||||
_storage = storage;
|
||||
}
|
||||
|
||||
@override
|
||||
String getServer() {
|
||||
return _cachedServer;
|
||||
}
|
||||
|
||||
@override
|
||||
Map<String, String> getHeaders() {
|
||||
return {
|
||||
'X-Imagini-AccessToken': _cachedAccessToken,
|
||||
'X-Imagini-RefreshToken': _cachedRefreshToken,
|
||||
};
|
||||
}
|
||||
|
||||
@override
|
||||
Future<StreamedResponse> send(BaseRequest request) async {
|
||||
String _accessToken = await _storage.get("accessToken");
|
||||
String _refreshToken = await _storage.get("refreshToken");
|
||||
|
||||
_cachedAccessToken = _accessToken;
|
||||
_cachedRefreshToken = _refreshToken;
|
||||
|
||||
request.headers.addAll({
|
||||
'X-Imagini-AccessToken': _accessToken,
|
||||
'X-Imagini-RefreshToken': _refreshToken,
|
||||
});
|
||||
|
||||
return super.send(request).then((response) async {
|
||||
if (response.headers.containsKey("x-imagini-accesstoken")) {
|
||||
_cachedAccessToken = response.headers["x-imagini-accesstoken"];
|
||||
await _storage.set("accessToken", response.headers["x-imagini-accesstoken"]);
|
||||
}
|
||||
if (response.headers.containsKey("x-imagini-refreshtoken")) {
|
||||
_cachedRefreshToken = response.headers["x-imagini-refreshtoken"];
|
||||
await _storage.set("refreshToken", response.headers["x-imagini-refreshtoken"]);
|
||||
}
|
||||
return response;
|
||||
});
|
||||
}
|
||||
}
|
||||
36
web_native/lib/api/auth_client/browser_cookie_client.dart
Normal file
36
web_native/lib/api/auth_client/browser_cookie_client.dart
Normal file
@@ -0,0 +1,36 @@
|
||||
import 'package:http/browser_client.dart';
|
||||
import "package:http/http.dart";
|
||||
import "package:imagini/core/storage_client/base_storage_client.dart";
|
||||
|
||||
BaseClient getCookieClient(storage) => ClientWithCookies(storage);
|
||||
|
||||
class ClientWithCookies extends BrowserClient {
|
||||
BaseStorageClient _storage;
|
||||
|
||||
ClientWithCookies(BaseStorageClient storage) {
|
||||
_storage = storage;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<StreamedResponse> send(BaseRequest request) async {
|
||||
String _accessToken = await _storage.get("accessToken");
|
||||
String _refreshToken = await _storage.get("refreshToken");
|
||||
|
||||
request.headers.addAll({
|
||||
'X-Imagini-AccessToken': _accessToken,
|
||||
'X-Imagini-RefreshToken': _refreshToken,
|
||||
});
|
||||
|
||||
return super.send(request).then((response) async {
|
||||
// We've been told to update our access token
|
||||
if (response.headers.containsKey("x-imagini-accesstoken")) {
|
||||
await _storage.set("accessToken", response.headers["x-imagini-accesstoken"]);
|
||||
}
|
||||
// We've been told to update our refresh token
|
||||
if (response.headers.containsKey("x-imagini-refreshtoken")) {
|
||||
await _storage.set("refreshToken", response.headers["x-imagini-refreshtoken"]);
|
||||
}
|
||||
return response;
|
||||
});
|
||||
}
|
||||
}
|
||||
4
web_native/lib/api/auth_client/cookie_client.dart
Normal file
4
web_native/lib/api/auth_client/cookie_client.dart
Normal file
@@ -0,0 +1,4 @@
|
||||
import 'package:http/http.dart';
|
||||
|
||||
BaseClient getCookieClient(storage) => throw UnsupportedError(
|
||||
'Cannot create a client without dart:html or dart:io.');
|
||||
56
web_native/lib/api/auth_client/io_auth_client.dart
Normal file
56
web_native/lib/api/auth_client/io_auth_client.dart
Normal file
@@ -0,0 +1,56 @@
|
||||
import "package:http/http.dart";
|
||||
import 'package:http/io_client.dart';
|
||||
import "package:imagini/api/auth_client/base_auth_client.dart";
|
||||
import "package:imagini/core/storage_client/base_storage_client.dart";
|
||||
|
||||
BaseClient getAuthClient(storage) => IOAuthClient(storage);
|
||||
|
||||
class IOAuthClient extends IOClient implements BaseAuthClient {
|
||||
BaseStorageClient _storage;
|
||||
String _cachedServer;
|
||||
String _cachedAccessToken;
|
||||
String _cachedRefreshToken;
|
||||
|
||||
IOAuthClient(BaseStorageClient storage) {
|
||||
_storage = storage;
|
||||
}
|
||||
|
||||
@override
|
||||
String getServer() {
|
||||
return _cachedServer;
|
||||
}
|
||||
|
||||
@override
|
||||
Map<String, String> getHeaders() {
|
||||
return {
|
||||
'X-Imagini-AccessToken': _cachedAccessToken,
|
||||
'X-Imagini-RefreshToken': _cachedRefreshToken,
|
||||
};
|
||||
}
|
||||
|
||||
@override
|
||||
Future<IOStreamedResponse> send(BaseRequest request) async {
|
||||
String _accessToken = await _storage.get("accessToken");
|
||||
String _refreshToken = await _storage.get("refreshToken");
|
||||
|
||||
_cachedAccessToken = _accessToken;
|
||||
_cachedRefreshToken = _refreshToken;
|
||||
|
||||
request.headers.addAll({
|
||||
'X-Imagini-AccessToken': _accessToken,
|
||||
'X-Imagini-RefreshToken': _refreshToken,
|
||||
});
|
||||
|
||||
return super.send(request).then((response) async {
|
||||
if (response.headers.containsKey("x-imagini-accesstoken")) {
|
||||
_cachedAccessToken = response.headers["x-imagini-accesstoken"];
|
||||
await _storage.set("accessToken", response.headers["x-imagini-accesstoken"]);
|
||||
}
|
||||
if (response.headers.containsKey("x-imagini-refreshtoken")) {
|
||||
_cachedRefreshToken = response.headers["x-imagini-refreshtoken"];
|
||||
await _storage.set("refreshToken", response.headers["x-imagini-refreshtoken"]);
|
||||
}
|
||||
return response;
|
||||
});
|
||||
}
|
||||
}
|
||||
36
web_native/lib/api/auth_client/io_cookie_client.dart
Normal file
36
web_native/lib/api/auth_client/io_cookie_client.dart
Normal file
@@ -0,0 +1,36 @@
|
||||
import 'package:http/io_client.dart';
|
||||
import "package:http/http.dart";
|
||||
import "package:imagini/core/storage_client/base_storage_client.dart";
|
||||
|
||||
BaseClient getCookieClient(storage) => IOClientWithCookies(storage);
|
||||
|
||||
class IOClientWithCookies extends IOClient {
|
||||
BaseStorageClient _storage;
|
||||
|
||||
IOClientWithCookies(BaseStorageClient storage) {
|
||||
_storage = storage;
|
||||
}
|
||||
|
||||
@override
|
||||
Future<IOStreamedResponse> send(BaseRequest request) async {
|
||||
String _accessToken = await _storage.get("accessToken");
|
||||
String _refreshToken = await _storage.get("refreshToken");
|
||||
|
||||
request.headers.addAll({
|
||||
'X-Imagini-AccessToken': _accessToken,
|
||||
'X-Imagini-RefreshToken': _refreshToken,
|
||||
});
|
||||
|
||||
return super.send(request).then((response) async {
|
||||
// We've been told to update our access token
|
||||
if (response.headers.containsKey("x-imagini-accesstoken")) {
|
||||
await _storage.set("accessToken", response.headers["x-imagini-accesstoken"]);
|
||||
}
|
||||
// We've been told to update our refresh token
|
||||
if (response.headers.containsKey("x-imagini-refreshtoken")) {
|
||||
await _storage.set("refreshToken", response.headers["x-imagini-refreshtoken"]);
|
||||
}
|
||||
return response;
|
||||
});
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user