1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2025-06-19 00:05:16 +00:00

Start to update general settings

This commit is contained in:
2020-04-27 13:27:37 +02:00
parent ca1f94531f
commit 8f927e9f72
6 changed files with 271 additions and 3 deletions

View File

@ -1,7 +1,9 @@
import 'dart:io';
import 'package:comunic/enums/user_page_visibility.dart';
import 'package:comunic/models/account_image_settings.dart';
import 'package:comunic/models/api_request.dart';
import 'package:comunic/models/general_settings.dart';
/// Settings helper
///
@ -14,6 +16,54 @@ const _APIAccountImageVisibilityAPILevels = {
};
class SettingsHelper {
/// Get & return general user settings
static Future<GeneralSettings> getGeneralSettings() async {
final response =
(await APIRequest(uri: "settings/get_general", needLogin: true).exec())
.assertOk()
.getObject();
return GeneralSettings(
email: response["email"],
firstName: response["firstName"],
lastName: response["lastName"],
pageVisibility: response["is_open"]
? UserPageVisibility.OPEN
: response["is_public"]
? UserPageVisibility.PUBLIC
: UserPageVisibility.PRIVATE,
allowComments: response["allow_comments"],
allowPostsFromFriends: response["allow_posts_from_friends"],
allowComunicEmails: response["allow_comunic_mails"],
publicFriendsList: response["public_friends_list"],
virtualDirectory: response["virtual_directory"],
personnalWebsite: response["personnal_website"],
publicNote: response["publicNote"],
);
}
/// Apply new general settings
static Future<void> updateGeneralSettings(GeneralSettings settings) async {
(await APIRequest(uri: "settings/set_general", needLogin: true, args: {
"firstName": settings.firstName,
"lastName": settings.lastName,
"allow_comunic_mails": settings.allowComunicEmails ? "true" : "false",
"isPublic": settings.pageVisibility == UserPageVisibility.PUBLIC
? "true"
: "false",
"isOpen":
settings.pageVisibility == UserPageVisibility.OPEN ? "true" : "false",
"allowComments": settings.allowComments ? "true" : "false",
"allowPostsFromFriends":
settings.allowPostsFromFriends ? "true" : "false",
"publicFriendsList": settings.publicFriendsList ? "true" : "false",
"personnalWebsite": settings.personnalWebsite,
"virtualDirectory": settings.virtualDirectory,
"publicNote": settings.publicNote,
}).exec())
.assertOk();
}
/// Get & return account image settings
static Future<AccountImageSettings> getAccountImageSettings() async {
final response =