ldc-com-app/ComApp/src/App/Controllers/InstallController.js

105 lines
No EOL
4.4 KiB
JavaScript

import { Alert } from "react-native";
// Lodash
import _ from 'lodash';
// Http Client
import axios from 'axios';
// Network Infos
import NetInfo from "@react-native-community/netinfo";
// Translations
import i18n from "../../I18n";
// Database
import { Setting } from "../../Database";
// FileSytem
import * as FileSystem from 'expo-file-system';
const api_token = 'toto';
class InstallController {
getConfig(url) {
NetInfo.fetch().then(state => {
if (state.isConnected) {
axios({
method: 'GET',
url: url + '/api/settings',
responseType: 'json',
params: {
token: api_token
},
})
.then(function (response) {
if (response.data) {
if (response.data.status === "OK") {
_.forEach(response.data.datas, function (value, key) {
switch (key) {
case "MainColor":
Setting.upsert({ key: key, value: value });
break;
case "SquaredLogo":
case "RectangleLogo":
case "BackgroundImage":
case "HomeButtonImage":
FileSystem.downloadAsync(
url + "/" + value,
FileSystem.documentDirectory + key + '.png'
)
.then(({ uri }) => {
console.log('Finished downloading to ', uri);
})
.catch(error => {
Alert.alert(i18n.t("alert.error"), i18n.t("install.resource_dl_error") + key);
console.error(error);
});
break;
}
});
Alert.alert(i18n.t("alert.info"), i18n.t("install.install_complete"));
} else {
Alert.alert(i18n.t("alert.error"), i18n.t("error.error_has_occurred"));
}
}
})
.catch(function (error) {
console.log(error)
Alert.alert(i18n.t("alert.error"), i18n.t("error.error_has_occurred"));
})
} else {
Alert.alert(i18n.t("alert.error"), i18n.t("error.tablet_not_connected_internet"));
}
});
}
getAppConfig(url) {
NetInfo.fetch().then(state => {
if (state.isConnected) {
axios({
method: 'GET',
url: url + '/api/app',
responseType: 'json',
params: {
token: api_token
},
})
.then(function (response) {
if (response.data) {
if (response.data.status === "OK") {
Setting.upsert({ key: 'HomeFolders', value: JSON.stringify(response.data.datas.folders) });
Alert.alert(i18n.t("alert.info"), i18n.t("install.install_complete"));
} else {
Alert.alert(i18n.t("alert.error"), i18n.t("error.error_has_occurred"));
}
}
})
.catch(function (error) {
console.log(error)
Alert.alert(i18n.t("alert.error"), i18n.t("error.error_has_occurred"));
})
} else {
Alert.alert(i18n.t("alert.error"), i18n.t("error.tablet_not_connected_internet"));
}
});
}
}
export default new InstallController();