2026-01-13 11:36:24 +05:30

134 lines
4.6 KiB
Dart

import 'dart:convert';
import 'package:onufitness/constants/constant.dart';
import 'package:onufitness/models/general/get_agora_user_trm_token_response_model.dart';
import 'package:onufitness/models/login_response_model.dart';
import 'package:onufitness/models/user_details_response_model.dart';
import 'package:onufitness/screens/u_vault/models/failed_videos_draft_model.dart';
class SharedServices {
//.............................................................................
static Future<void> setLoginDetails(LoginResponseModel? responseModel) async {
if (responseModel != null) {
preferences!.setString(
"login_details",
jsonEncode(responseModel.toJson()),
);
}
}
//.............................................................................
static bool isLoggedIn() {
return preferences?.getString("login_details") != null ? true : false;
}
static bool isUserDataExist() {
return preferences?.getString("user_details") != null ? true : false;
}
//.............................................................................
static LoginResponseModel? getLoginDetails() {
if (preferences!.getString("login_details") != null) {
return LoginResponseModel.fromJson(
jsonDecode(preferences!.getString("login_details")!),
);
} else {
return null;
}
}
//.............................................................................
static Future<bool> logout() async {
await preferences!.clear();
preferences?.remove('login_details');
preferences?.remove('user_details');
return true;
}
//.............................................................................
static String userAuth() {
var model = LoginResponseModel.fromJson(
jsonDecode(preferences!.getString("login_details")!),
);
return "Bearer ${model.data?.tokenResponse?.accessToken}";
}
//.............................................................................
// Set User Details............................................................
static Future<void> setUserDetails(
UserDetailsResponseModel? responseModel,
) async {
if (responseModel != null) {
preferences!.setString(
"user_details",
jsonEncode(responseModel.toJson()),
);
}
}
//.............................................................................
// Get User Details............................................................
static UserDetailsResponseModel? getUserDetails() {
if (preferences!.getString("user_details") != null) {
return UserDetailsResponseModel.fromJson(
jsonDecode(preferences!.getString("user_details")!),
);
} else {
return null;
}
}
//...........Draft Videos..................................................................
//.............................................................................
static Future<void> addFailedUpload(FailedUploadModel model) async {
final current = preferences!.getStringList("failed_uploads") ?? [];
final modelJson = jsonEncode(model.toJson());
if (!(current.any((e) => e.contains(model.title)) ||
current.any((e) => e.contains(model.videoFilePath)))) {
current.add(modelJson);
await preferences!.setStringList("failed_uploads", current);
}
}
static List<FailedUploadModel> getFailedUploads() {
final data = preferences!.getStringList("failed_uploads") ?? [];
return data.map((e) => FailedUploadModel.fromJson(jsonDecode(e))).toList();
}
static Future<void> removeFailedUploadAt(int index) async {
final list = preferences!.getStringList("failed_uploads") ?? [];
if (index >= 0 && index < list.length) {
list.removeAt(index);
await preferences!.setStringList("failed_uploads", list);
}
}
//.............................................................................
//.............................................................................
// Agora Details............................................................
static Future<void> setAgoraToken(
AgoraUserAndRtmTokenResponseModel? responseModel,
) async {
if (responseModel != null) {
preferences!.setString(
"agora_user_rtm_token",
jsonEncode(responseModel.toJson()),
);
}
}
static AgoraUserAndRtmTokenResponseModel? getAgoraUserAndRtmTokens() {
if (preferences!.getString("agora_user_rtm_token") != null) {
return AgoraUserAndRtmTokenResponseModel.fromJson(
jsonDecode(preferences!.getString("agora_user_rtm_token")!),
);
} else {
return null;
}
}
}