You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
2.1 KiB
Dart

import 'package:isekai_wiki/api/response/userinfo.dart';
import '../response/mugenapp.dart';
import 'mw_api.dart';
class MWApiUser {
static Future<MWResponse<MugenAppStartAuthInfo>> startAuth() async {
var query = {
"method": "startauth",
};
var mwRes = await MWApi.get("mugenapp", query: query);
if (!mwRes.ok) {
return MWResponse(errorList: mwRes.errorList);
}
if (mwRes.data != null) {
var authRes = MugenAppStartAuthResponse.fromJson(mwRes.data!);
return MWResponse(
ok: true, data: authRes.startauth, continueInfo: mwRes.continueInfo);
} else {
return MWResponse(
errorList: [MWError(code: 'response_data_empty', info: '加载的数据为空')]);
}
}
static Future<MWResponse<MugenAppAttemptAuthInfo>> attemptAuth(
String loginRequestKey) async {
var query = {
"method": "attemptauth",
"requestkey": loginRequestKey,
};
var mwRes = await MWApi.get("mugenapp", query: query);
if (!mwRes.ok) {
return MWResponse(errorList: mwRes.errorList);
}
if (mwRes.data != null) {
var authRes = MugenAppAttemptAuthResponse.fromJson(mwRes.data!);
return MWResponse(
ok: true,
data: authRes.attemptauth,
continueInfo: mwRes.continueInfo);
} else {
return MWResponse(
errorList: [MWError(code: 'response_data_empty', info: '加载的数据为空')]);
}
}
static Future<MWResponse<MetaUserInfoResponse>> getCurrentUserInfo() async {
var query = {
"meta": "userinfo|useravatar",
"uiprop": "blockinfo|groups|rights|options|email|realname|latestcontrib",
};
var mwRes = await MWApi.get("query", query: query);
if (!mwRes.ok) {
return MWResponse(errorList: mwRes.errorList);
}
if (mwRes.data != null) {
var userInfoRes = MetaUserInfoResponse.fromJson(mwRes.data!);
return MWResponse(ok: true, data: userInfoRes);
} else {
return MWResponse(
errorList: [MWError(code: 'response_data_empty', info: '加载的数据为空')]);
}
}
}