Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions src/API.js
Original file line number Diff line number Diff line change
Expand Up @@ -695,13 +695,13 @@ const createError = function(code) {
}
}

const checkServer = function(server) {
const checkServer = function(server, quick) {
return new Promise((resolve, reject) => {
resolveBaseURL(server)
.then((baseURL) => {

console.log('Base URL is ' + baseURL)

if (quick == true) {
resolve(baseURL);
}
axios
.get(`${baseURL}/api`, {
headers: {
Expand Down Expand Up @@ -731,6 +731,7 @@ const checkServer = function(server) {
.catch(error => {
if (error.response) {
if (error.response.status === 503) {
console.log(baseURL + ' is under maintenace');
reject(createError(ERROR_MAINTENANCE_ON))
} else {
reject(createError(ERROR_NOT_COMPATIBLE))
Expand Down
23 changes: 19 additions & 4 deletions src/Server.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import AsyncStorage from '@react-native-async-storage/async-storage'
import axios from 'axios'
import API from './API'

const load = () => {

Expand All @@ -8,10 +9,8 @@ const load = () => {
AsyncStorage.getItem('@CoopCycle.servers')
.then((data, e) => {
if (e || !data) {

return resolve([])
}

resolve(JSON.parse(data))
})
} catch (e) {
Expand Down Expand Up @@ -47,9 +46,25 @@ const save = data => {
})
}

function overrideCity(values) {

async function overrideCity(values) {
const fail = Symbol()

const promises = values.map(async(n) => ({
value: n,
include: await API.checkServer(n.url, true).then(value => {
return true;
}).catch(err => {
console.log(err); // 👉️ "Something went wrong"
return false;
})
}));
const data_with_includes = await Promise.all(promises);
const filtered_data_with_includes = data_with_includes.filter(v => v.include);
const filtered_data = filtered_data_with_includes.map(data => data.value);
values = filtered_data;
return values.map((value) => {

if (value.city.startsWith('Ciudad de México')) {
return {
...value,
Expand Down Expand Up @@ -86,4 +101,4 @@ class Server {

}

export default Server
export default Server
4 changes: 2 additions & 2 deletions src/redux/App/actions.js
Original file line number Diff line number Diff line change
Expand Up @@ -287,13 +287,13 @@ function loadAll(getState) {
}

export function selectServer(server) {

console.log('selected server: ' + server);
return function (dispatch, getState) {

dispatch(setLoading(true))
dispatch(_clearSelectServerError())

return API.checkServer(server)
return API.checkServer(server, false)
.then(baseURL =>
Settings.synchronize(baseURL)
.then((settings) => {
Expand Down