@@ -10,15 +10,40 @@ import 'package:piwigo_ng/services/preferences_service.dart';
1010
1111import 'api_client.dart' ;
1212
13+ Future <ApiResult <String >> pingAPI () async {
14+ Map <String , String > queries = {
15+ 'format' : 'json' ,
16+ 'method' : 'pwg.getVersion' ,
17+ };
18+
19+ try {
20+ Response response = await ApiClient .get (queryParameters: queries);
21+ var data = json.decode (response.data);
22+ if (data['stat' ] == 'ok' ) {
23+ return ApiResult <String >(data: data['result' ]);
24+ }
25+ } on DioError catch (e) {
26+ debugPrint (e.message);
27+ } catch (e) {
28+ debugPrint ('Error $e ' );
29+ }
30+ return ApiResult (error: ApiErrors .error);
31+ }
32+
1333Future <ApiResult <bool >> loginUser (
1434 String url, {
1535 String username = '' ,
1636 String password = '' ,
1737}) async {
18- if (url.isEmpty) {}
38+ if (url.isEmpty) {
39+ return ApiResult <bool >(
40+ data: false ,
41+ error: ApiErrors .wrongServerUrl,
42+ );
43+ }
44+
1945 FlutterSecureStorage secureStorage = const FlutterSecureStorage ();
2046 await secureStorage.write (key: 'SERVER_URL' , value: url);
21- print (url);
2247
2348 if (username.isEmpty && password.isEmpty) {
2449 ApiResult <StatusModel > status = await sessionStatus ();
@@ -83,6 +108,10 @@ Future<ApiResult<StatusModel>> sessionStatus() async {
83108 Response response = await ApiClient .get (queryParameters: queries);
84109 var data = json.decode (response.data);
85110 if (data['stat' ] == 'ok' ) {
111+ if (await methodExist ('community.session.getStatus' )) {
112+ String ? community = await communityStatus ();
113+ data['result' ]['real_user_status' ] = community;
114+ }
86115 return ApiResult <StatusModel >(
87116 data: StatusModel .fromJson (data['result' ]),
88117 );
@@ -97,6 +126,23 @@ Future<ApiResult<StatusModel>> sessionStatus() async {
97126 );
98127}
99128
129+ Future <String ?> communityStatus () async {
130+ Map <String , String > queries = {'format' : 'json' , 'method' : 'community.session.getStatus' };
131+
132+ try {
133+ Response response = await ApiClient .get (queryParameters: queries);
134+ var data = json.decode (response.data);
135+ if (data['stat' ] == 'ok' ) {
136+ return data['result' ]['real_user_status' ];
137+ }
138+ } on DioError catch (e) {
139+ debugPrint (e.message);
140+ } catch (e) {
141+ debugPrint ('Error $e ' );
142+ }
143+ return null ;
144+ }
145+
100146Future <ApiResult <InfoModel >> getInfo () async {
101147 Map <String , String > queries = {'format' : 'json' , 'method' : 'pwg.getInfos' };
102148
0 commit comments