Skip to content
Open
Show file tree
Hide file tree
Changes from 3 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
51 changes: 47 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,53 @@ const save = data => {
})
}

function overrideCity(values) {

async function overrideCity(values) {
console.log(values.length)
const fail = Symbol()
/*
values =
(await Promise.all(
values.map(
async value => (
await
API.checkServer(value.url, true)
)
.then((response) => {
console.log(response)
return value}).catch((err) => {
console.log(fail)
return fail})
)
)).filter(i => i !== fail)

p.then(value => {
console.log(value);
}).catch(err => {
console.log(err); // 👉️ "Something went wrong"
});

*/

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

if (value.city.startsWith('Ciudad de México')) {
return {
...value,
Expand Down Expand Up @@ -86,4 +129,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