Files
flutter-picgo/lib/api/gitee_api.dart
2020-06-30 18:53:22 +08:00

68 lines
2.0 KiB
Dart

import 'dart:convert';
import 'package:dio/dio.dart';
import 'package:flutter_picgo/model/gitee_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 GiteeApi {
static const String BASE_URL = 'https://gitee.com/api/v5/';
static const String KEY_ACCESS_TOKEN = 'access_token';
static Future testToken() async {
Response res =
await NetUtils.getInstance().get(BASE_URL + 'user', queryParameters: {
KEY_ACCESS_TOKEN: await oAuth(),
});
return res.data;
}
static Future createFile(String url, Map<String, dynamic> map) async {
Map<String, dynamic> realMap = {
KEY_ACCESS_TOKEN: await oAuth(),
};
realMap.addAll(map);
var data = FormData.fromMap(realMap);
Response res =
await NetUtils.getInstance().post(BASE_URL + url, data: data);
map.clear();
map = null;
return res.data;
}
static Future getContents(String url, Map<String, dynamic> params) async {
Response res = await NetUtils.getInstance()
.get(BASE_URL + url, queryParameters: params);
return res.data;
}
static Future deleteFile(String url, Map<String, dynamic> query) async {
Map<String, dynamic> realQuery = {
KEY_ACCESS_TOKEN: await oAuth(),
};
realQuery.addAll(query);
Response res = await NetUtils.getInstance()
.delete(BASE_URL + url, queryParameters: realQuery);
return res.data;
}
/// 获取配置中的Token
static Future<String> oAuth() async {
try {
String configStr = await ImageUploadUtils.getPBConfig(PBTypeKeys.gitee);
if (!isBlank(configStr)) {
GiteeConfig config = GiteeConfig.fromJson(json.decode(configStr));
if (config != null && !isBlank(config.token)) {
return config.token;
}
}
return null;
} catch (e) {
return null;
}
}
}