forked from lxm_tools/flutter-picgo
refactor:重构github请求封装
This commit is contained in:
@@ -1,7 +1,56 @@
|
||||
class GithubApi {
|
||||
import 'dart:convert';
|
||||
import 'package:dio/dio.dart';
|
||||
import 'package:flutter_picgo/model/github_config.dart';
|
||||
import 'package:flutter_picgo/resources/pb_type_keys.dart';
|
||||
import 'package:flutter_picgo/utils/image_upload.dart';
|
||||
import 'package:flutter_picgo/utils/net.dart';
|
||||
import 'package:flutter_picgo/utils/strings.dart';
|
||||
|
||||
class GithubApi {
|
||||
static const String BASE_URL = 'https://api.github.com/';
|
||||
|
||||
static const String CONTENTS = 'repos/:owner/:repo/contents/:path'; //PUT DELETE GET
|
||||
static const String CONTENTS =
|
||||
'repos/:owner/:repo/contents/:path'; //PUT DELETE GET
|
||||
|
||||
}
|
||||
static Future testToken() async {
|
||||
Response res = await NetUtils.getInstance().get(BASE_URL);
|
||||
return res.data;
|
||||
}
|
||||
|
||||
static Future putContent(String url, data) async {
|
||||
var op = await oAuth();
|
||||
Response res = await NetUtils.getInstance()
|
||||
.put(BASE_URL + url ?? '', data: data, options: op);
|
||||
return res.data;
|
||||
}
|
||||
|
||||
static Future deleteContent(String url, data) async {
|
||||
var op = await oAuth();
|
||||
Response res = await NetUtils.getInstance()
|
||||
.delete(BASE_URL + url, data: data, options: op);
|
||||
return res.data;
|
||||
}
|
||||
|
||||
static Future getContents(String url, Map<String, dynamic> params) async {
|
||||
var op = await oAuth();
|
||||
Response res = await NetUtils.getInstance()
|
||||
.get(BASE_URL + url, queryParameters: params, options: op);
|
||||
return res.data;
|
||||
}
|
||||
|
||||
/// 获取配置中的Token
|
||||
static Future<Options> oAuth() async {
|
||||
try {
|
||||
String configStr = await ImageUploadUtils.getPBConfig(PBTypeKeys.github);
|
||||
if (!isBlank(configStr)) {
|
||||
GithubConfig config = GithubConfig.fromJson(json.decode(configStr));
|
||||
if (config != null && config.token != null && config.token != '') {
|
||||
return Options(headers: {"Authorization": 'Token ${config.token}'});
|
||||
}
|
||||
}
|
||||
return null;
|
||||
} catch (e) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user