modules.dart 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import 'dart:convert';
  2. import 'package:dio/dio.dart';
  3. import 'package:flutter/cupertino.dart';
  4. import 'package:flutter/material.dart';
  5. import 'package:mvvm_flutter/model/remote.dart';
  6. import 'package:mvvm_flutter/model/repository.dart';
  7. import 'package:mvvm_flutter/view/home.dart';
  8. import 'package:provide/provide.dart';
  9. final GlobalKey<ScaffoldState> scaffoldKey = GlobalKey<ScaffoldState>();
  10. String token="";
  11. final Dio dio=Dio()
  12. ..options = BaseOptions(
  13. baseUrl: 'https://api.github.com/',
  14. connectTimeout: 30,
  15. receiveTimeout: 30)
  16. ..interceptors.add(AuthInterceptor())
  17. ..interceptors.add(LogInterceptor(responseBody: true, requestBody: true));
  18. GithubService _provideGithubService()=>GithubService();
  19. GithubRepo _provideGithubRepo()=>GithubRepo(_provideGithubService());
  20. HomeViewModel provideHomeViewModel() => HomeViewModel(_provideGithubRepo());
  21. final providers = Providers();
  22. class AuthInterceptor extends Interceptor{
  23. @override
  24. onRequest(RequestOptions options) {
  25. options.headers.update("Authorization",(_)=>token,ifAbsent: ()=>token);
  26. return super.onRequest(options);
  27. }
  28. }