Skip to content

Instantly share code, notes, and snippets.

View dev4jam's full-sized avatar

Dmitry Klimkin dev4jam

  • IT Jedi Pty Ltd
  • Sydney
View GitHub Profile
@dev4jam
dev4jam / access_token_response.dart
Created March 21, 2022 06:42
AccessTokenResponse
class AccessTokenResponse {
String? accessToken;
AccessTokenResponse.fromJson(Map<String, dynamic> json) {
accessToken = json['access_token'];
}
}
@dev4jam
dev4jam / expected_api_call.dart
Created March 21, 2022 06:41
Expected API call
//Instantiate a service and keep it in your DI container:
final service = NetworkService(baseUrl: 'https://www.domain.com/api');
// Prepare a request:
final request = NetworkRequest(
type: NetworkRequestType.POST,
path: '/authenticate',
data: NetworkRequestBody.json({
'login': 'user_name',
'password': 'password'
}),
@dev4jam
dev4jam / regular_api_call.dart
Created March 21, 2022 06:39
Regular api call
final dio = Dio()
..options.baseUrl = 'https://www.domain.com/api';
..options.connectTimeout = 5000; // 5 seconds
..options.receiveTimeout = 3000; // 3 seconds
try {
final response = await dio.post('/authenticate', data: {'login': 'user_name', 'password': 'password'});
// Check response then response.data and convert response to your model
} on Dio.DioError catch (error) {
// Handle Dio exceptions here
} catch (error) {
@dev4jam
dev4jam / main.dart
Created March 20, 2022 22:15
Dart inheritance issue
// Model interface
abstract class JsonConvertible {
Map<String, dynamic> toJson();
JsonConvertible.fromJson(Map<String, dynamic> json);
}
// Model
class AccessTokenResponse extends JsonConvertible {
String? accessToken;
{
"version": "2.0.0",
"tasks": [
{
"label": "flutter: analyze",
"type": "shell",
"command": "flutter",
"group": "build",
"runOptions": {
"instanceLimit": 1,