Commiting

This commit is contained in:
mgabdev
2020-11-15 12:48:32 -06:00
parent 62515bbaee
commit fb612f60c8
1011 changed files with 3507 additions and 49604 deletions

View File

@@ -1,88 +1,92 @@
import api from '../api';
import { importFetchedAccounts } from './importer';
// import { showAlertForError } from './alerts';
import api from '../api'
import { importFetchedAccounts } from './importer'
// import { showAlertForError } from './alerts'
import { me } from '../initial_state'
export const LIST_FETCH_REQUEST = 'LIST_FETCH_REQUEST';
export const LIST_FETCH_SUCCESS = 'LIST_FETCH_SUCCESS';
export const LIST_FETCH_FAIL = 'LIST_FETCH_FAIL';
export const LIST_FETCH_REQUEST = 'LIST_FETCH_REQUEST'
export const LIST_FETCH_SUCCESS = 'LIST_FETCH_SUCCESS'
export const LIST_FETCH_FAIL = 'LIST_FETCH_FAIL'
export const LISTS_FETCH_REQUEST = 'LISTS_FETCH_REQUEST';
export const LISTS_FETCH_SUCCESS = 'LISTS_FETCH_SUCCESS';
export const LISTS_FETCH_FAIL = 'LISTS_FETCH_FAIL';
export const LISTS_FETCH_REQUEST = 'LISTS_FETCH_REQUEST'
export const LISTS_FETCH_SUCCESS = 'LISTS_FETCH_SUCCESS'
export const LISTS_FETCH_FAIL = 'LISTS_FETCH_FAIL'
export const LIST_EDITOR_TITLE_CHANGE = 'LIST_EDITOR_TITLE_CHANGE';
export const LIST_EDITOR_RESET = 'LIST_EDITOR_RESET';
export const LIST_EDITOR_SETUP = 'LIST_EDITOR_SETUP';
export const LIST_EDITOR_TITLE_CHANGE = 'LIST_EDITOR_TITLE_CHANGE'
export const LIST_EDITOR_RESET = 'LIST_EDITOR_RESET'
export const LIST_EDITOR_SETUP = 'LIST_EDITOR_SETUP'
export const LIST_CREATE_REQUEST = 'LIST_CREATE_REQUEST';
export const LIST_CREATE_SUCCESS = 'LIST_CREATE_SUCCESS';
export const LIST_CREATE_FAIL = 'LIST_CREATE_FAIL';
export const LIST_CREATE_REQUEST = 'LIST_CREATE_REQUEST'
export const LIST_CREATE_SUCCESS = 'LIST_CREATE_SUCCESS'
export const LIST_CREATE_FAIL = 'LIST_CREATE_FAIL'
export const LIST_UPDATE_REQUEST = 'LIST_UPDATE_REQUEST';
export const LIST_UPDATE_SUCCESS = 'LIST_UPDATE_SUCCESS';
export const LIST_UPDATE_FAIL = 'LIST_UPDATE_FAIL';
export const LIST_UPDATE_REQUEST = 'LIST_UPDATE_REQUEST'
export const LIST_UPDATE_SUCCESS = 'LIST_UPDATE_SUCCESS'
export const LIST_UPDATE_FAIL = 'LIST_UPDATE_FAIL'
export const LIST_DELETE_REQUEST = 'LIST_DELETE_REQUEST';
export const LIST_DELETE_SUCCESS = 'LIST_DELETE_SUCCESS';
export const LIST_DELETE_FAIL = 'LIST_DELETE_FAIL';
export const LIST_DELETE_REQUEST = 'LIST_DELETE_REQUEST'
export const LIST_DELETE_SUCCESS = 'LIST_DELETE_SUCCESS'
export const LIST_DELETE_FAIL = 'LIST_DELETE_FAIL'
export const LIST_ACCOUNTS_FETCH_REQUEST = 'LIST_ACCOUNTS_FETCH_REQUEST';
export const LIST_ACCOUNTS_FETCH_SUCCESS = 'LIST_ACCOUNTS_FETCH_SUCCESS';
export const LIST_ACCOUNTS_FETCH_FAIL = 'LIST_ACCOUNTS_FETCH_FAIL';
export const LIST_ACCOUNTS_FETCH_REQUEST = 'LIST_ACCOUNTS_FETCH_REQUEST'
export const LIST_ACCOUNTS_FETCH_SUCCESS = 'LIST_ACCOUNTS_FETCH_SUCCESS'
export const LIST_ACCOUNTS_FETCH_FAIL = 'LIST_ACCOUNTS_FETCH_FAIL'
export const LIST_EDITOR_SUGGESTIONS_CHANGE = 'LIST_EDITOR_SUGGESTIONS_CHANGE';
export const LIST_EDITOR_SUGGESTIONS_READY = 'LIST_EDITOR_SUGGESTIONS_READY';
export const LIST_EDITOR_SUGGESTIONS_CLEAR = 'LIST_EDITOR_SUGGESTIONS_CLEAR';
export const LIST_EDITOR_SUGGESTIONS_CHANGE = 'LIST_EDITOR_SUGGESTIONS_CHANGE'
export const LIST_EDITOR_SUGGESTIONS_READY = 'LIST_EDITOR_SUGGESTIONS_READY'
export const LIST_EDITOR_SUGGESTIONS_CLEAR = 'LIST_EDITOR_SUGGESTIONS_CLEAR'
export const LIST_EDITOR_ADD_REQUEST = 'LIST_EDITOR_ADD_REQUEST';
export const LIST_EDITOR_ADD_SUCCESS = 'LIST_EDITOR_ADD_SUCCESS';
export const LIST_EDITOR_ADD_FAIL = 'LIST_EDITOR_ADD_FAIL';
export const LIST_EDITOR_ADD_REQUEST = 'LIST_EDITOR_ADD_REQUEST'
export const LIST_EDITOR_ADD_SUCCESS = 'LIST_EDITOR_ADD_SUCCESS'
export const LIST_EDITOR_ADD_FAIL = 'LIST_EDITOR_ADD_FAIL'
export const LIST_EDITOR_REMOVE_REQUEST = 'LIST_EDITOR_REMOVE_REQUEST';
export const LIST_EDITOR_REMOVE_SUCCESS = 'LIST_EDITOR_REMOVE_SUCCESS';
export const LIST_EDITOR_REMOVE_FAIL = 'LIST_EDITOR_REMOVE_FAIL';
export const LIST_EDITOR_REMOVE_REQUEST = 'LIST_EDITOR_REMOVE_REQUEST'
export const LIST_EDITOR_REMOVE_SUCCESS = 'LIST_EDITOR_REMOVE_SUCCESS'
export const LIST_EDITOR_REMOVE_FAIL = 'LIST_EDITOR_REMOVE_FAIL'
export const LIST_ADDER_RESET = 'LIST_ADDER_RESET';
export const LIST_ADDER_SETUP = 'LIST_ADDER_SETUP';
export const LIST_ADDER_RESET = 'LIST_ADDER_RESET'
export const LIST_ADDER_SETUP = 'LIST_ADDER_SETUP'
export const LIST_ADDER_LISTS_FETCH_REQUEST = 'LIST_ADDER_LISTS_FETCH_REQUEST';
export const LIST_ADDER_LISTS_FETCH_SUCCESS = 'LIST_ADDER_LISTS_FETCH_SUCCESS';
export const LIST_ADDER_LISTS_FETCH_FAIL = 'LIST_ADDER_LISTS_FETCH_FAIL';
export const LIST_ADDER_LISTS_FETCH_REQUEST = 'LIST_ADDER_LISTS_FETCH_REQUEST'
export const LIST_ADDER_LISTS_FETCH_SUCCESS = 'LIST_ADDER_LISTS_FETCH_SUCCESS'
export const LIST_ADDER_LISTS_FETCH_FAIL = 'LIST_ADDER_LISTS_FETCH_FAIL'
export const fetchList = id => (dispatch, getState) => {
if (!me) return;
/**
*
*/
export const fetchList = (id) => (dispatch, getState) => {
if (!me) return
if (getState().getIn(['lists', id])) {
return;
}
if (getState().getIn(['lists', id])) return
dispatch(fetchListRequest(id));
dispatch(fetchListRequest(id))
api(getState).get(`/api/v1/lists/${id}`)
.then(({ data }) => dispatch(fetchListSuccess(data)))
.catch(err => dispatch(fetchListFail(id, err)));
};
.catch((err) => dispatch(fetchListFail(id, err)))
}
export const fetchListRequest = id => ({
const fetchListRequest = id => ({
type: LIST_FETCH_REQUEST,
id,
});
})
export const fetchListSuccess = list => ({
const fetchListSuccess = list => ({
type: LIST_FETCH_SUCCESS,
list,
});
})
export const fetchListFail = (id, error) => ({
const fetchListFail = (id, error) => ({
type: LIST_FETCH_FAIL,
id,
error,
});
})
/**
*
*/
export const fetchLists = () => (dispatch, getState) => {
return new Promise((resolve, reject) => {
dispatch(fetchListsRequest());
dispatch(fetchListsRequest())
if (!me) return reject()
api(getState).get('/api/v1/lists').then(({ data }) => {
dispatch(fetchListsSuccess(data))
@@ -90,307 +94,367 @@ export const fetchLists = () => (dispatch, getState) => {
}).catch((err) => {
dispatch(fetchListsFail(err))
return reject()
});
})
})
};
}
export const fetchListsRequest = () => ({
const fetchListsRequest = () => ({
type: LISTS_FETCH_REQUEST,
});
})
export const fetchListsSuccess = (lists) => ({
const fetchListsSuccess = (lists) => ({
type: LISTS_FETCH_SUCCESS,
lists,
});
})
export const fetchListsFail = (error) => ({
const fetchListsFail = (error) => ({
type: LISTS_FETCH_FAIL,
error,
});
})
/**
*
*/
export const submitListEditor = (shouldReset) => (dispatch, getState) => {
const listId = getState().getIn(['listEditor', 'listId']);
const title = getState().getIn(['listEditor', 'title']);
const listId = getState().getIn(['listEditor', 'listId'])
const title = getState().getIn(['listEditor', 'title'])
if (listId === null) {
dispatch(createList(title, shouldReset));
dispatch(createList(title, shouldReset))
} else {
dispatch(updateList(listId, title, shouldReset));
dispatch(updateList(listId, title, shouldReset))
}
};
}
/**
*
*/
export const setupListEditor = (listId) => (dispatch, getState) => {
dispatch({
type: LIST_EDITOR_SETUP,
list: getState().getIn(['lists', listId]),
});
})
dispatch(fetchListAccounts(listId));
};
dispatch(fetchListAccounts(listId))
}
/**
*
*/
export const changeListEditorTitle = (value) => ({
type: LIST_EDITOR_TITLE_CHANGE,
value,
});
})
/**
*
*/
export const createList = (title, shouldReset) => (dispatch, getState) => {
if (!me) return;
if (!me) return
dispatch(createListRequest());
dispatch(createListRequest())
api(getState).post('/api/v1/lists', { title }).then(({ data }) => {
dispatch(createListSuccess(data));
dispatch(createListSuccess(data))
if (shouldReset) {
dispatch(resetListEditor());
dispatch(resetListEditor())
}
}).catch(err => dispatch(createListFail(err)));
};
}).catch((err) => dispatch(createListFail(err)))
}
export const createListRequest = () => ({
type: LIST_CREATE_REQUEST,
});
})
export const createListSuccess = (list) => ({
type: LIST_CREATE_SUCCESS,
list,
});
})
export const createListFail = (error) => ({
type: LIST_CREATE_FAIL,
error,
});
})
/**
*
*/
export const updateList = (id, title, shouldReset) => (dispatch, getState) => {
if (!me) return;
if (!me) return
dispatch(updateListRequest(id));
dispatch(updateListRequest(id))
api(getState).put(`/api/v1/lists/${id}`, { title }).then(({ data }) => {
dispatch(updateListSuccess(data));
dispatch(updateListSuccess(data))
if (shouldReset) {
dispatch(resetListEditor());
dispatch(resetListEditor())
}
}).catch(err => dispatch(updateListFail(id, err)));
};
}).catch((err) => dispatch(updateListFail(id, err)))
}
export const updateListRequest = id => ({
type: LIST_UPDATE_REQUEST,
id,
});
})
export const updateListSuccess = list => ({
type: LIST_UPDATE_SUCCESS,
list,
});
})
export const updateListFail = (id, error) => ({
type: LIST_UPDATE_FAIL,
id,
error,
});
})
export const resetListEditor = () => ({
type: LIST_EDITOR_RESET,
});
})
/**
*
*/
export const deleteList = (id) => (dispatch, getState) => {
if (!me) return;
if (!me) return
dispatch(deleteListRequest(id));
dispatch(deleteListRequest(id))
api(getState).delete(`/api/v1/lists/${id}`)
.then(() => dispatch(deleteListSuccess(id)))
.catch(err => dispatch(deleteListFail(id, err)));
};
.catch((err) => dispatch(deleteListFail(id, err)))
}
export const deleteListRequest = (id) => ({
type: LIST_DELETE_REQUEST,
id,
});
})
export const deleteListSuccess = (id) => ({
type: LIST_DELETE_SUCCESS,
id,
});
})
export const deleteListFail = (id, error) => ({
type: LIST_DELETE_FAIL,
id,
error,
});
})
/**
*
*/
export const fetchListAccounts = (listId) => (dispatch, getState) => {
if (!me) return;
if (!me) return
dispatch(fetchListAccountsRequest(listId));
dispatch(fetchListAccountsRequest(listId))
api(getState).get(`/api/v1/lists/${listId}/accounts`, { params: { limit: 0 } }).then(({ data }) => {
dispatch(importFetchedAccounts(data));
dispatch(fetchListAccountsSuccess(listId, data));
}).catch(err => dispatch(fetchListAccountsFail(listId, err)));
};
dispatch(importFetchedAccounts(data))
dispatch(fetchListAccountsSuccess(listId, data))
}).catch((err) => dispatch(fetchListAccountsFail(listId, err)))
}
export const fetchListAccountsRequest = (id) => ({
type: LIST_ACCOUNTS_FETCH_REQUEST,
id,
});
})
export const fetchListAccountsSuccess = (id, accounts, next) => ({
type: LIST_ACCOUNTS_FETCH_SUCCESS,
id,
accounts,
next,
});
})
export const fetchListAccountsFail = (id, error) => ({
type: LIST_ACCOUNTS_FETCH_FAIL,
id,
error,
});
})
/**
*
*/
export const fetchListSuggestions = (q) => (dispatch, getState) => {
if (!me) return;
if (!me) return
const params = {
q,
resolve: false,
limit: 25,
};
}
api(getState).get('/api/v1/accounts/search', { params }).then(({ data }) => {
dispatch(importFetchedAccounts(data));
dispatch(fetchListSuggestionsReady(q, data));
dispatch(importFetchedAccounts(data))
dispatch(fetchListSuggestionsReady(q, data))
})
// }).catch(error => dispatch(showAlertForError(error)));
};
// }).catch(error => dispatch(showAlertForError(error)))
}
/**
*
*/
export const fetchListSuggestionsReady = (query, accounts) => ({
type: LIST_EDITOR_SUGGESTIONS_READY,
query,
accounts,
});
})
/**
*
*/
export const clearListSuggestions = () => ({
type: LIST_EDITOR_SUGGESTIONS_CLEAR,
});
})
/**
*
*/
export const changeListSuggestions = (value) => ({
type: LIST_EDITOR_SUGGESTIONS_CHANGE,
value,
});
})
/**
*
*/
export const addToListEditor = accountId => (dispatch, getState) => {
dispatch(addToList(getState().getIn(['listEditor', 'listId']), accountId));
};
dispatch(addToList(getState().getIn(['listEditor', 'listId']), accountId))
}
/**
*
*/
export const addToList = (listId, accountId) => (dispatch, getState) => {
if (!me) return;
if (!me) return
dispatch(addToListRequest(listId, accountId));
dispatch(addToListRequest(listId, accountId))
api(getState).post(`/api/v1/lists/${listId}/accounts`, { account_ids: [accountId] })
.then(() => dispatch(addToListSuccess(listId, accountId)))
.catch(err => dispatch(addToListFail(listId, accountId, err)));
};
.catch((err) => dispatch(addToListFail(listId, accountId, err)))
}
export const addToListRequest = (listId, accountId) => ({
const addToListRequest = (listId, accountId) => ({
type: LIST_EDITOR_ADD_REQUEST,
listId,
accountId,
});
})
export const addToListSuccess = (listId, accountId) => ({
const addToListSuccess = (listId, accountId) => ({
type: LIST_EDITOR_ADD_SUCCESS,
listId,
accountId,
});
})
export const addToListFail = (listId, accountId, error) => ({
const addToListFail = (listId, accountId, error) => ({
type: LIST_EDITOR_ADD_FAIL,
listId,
accountId,
error,
});
})
/**
*
*/
export const removeFromListEditor = accountId => (dispatch, getState) => {
dispatch(removeFromList(getState().getIn(['listEditor', 'listId']), accountId));
};
dispatch(removeFromList(getState().getIn(['listEditor', 'listId']), accountId))
}
/**
*
*/
export const removeFromList = (listId, accountId) => (dispatch, getState) => {
if (!me) return;
if (!me) return
dispatch(removeFromListRequest(listId, accountId));
dispatch(removeFromListRequest(listId, accountId))
api(getState).delete(`/api/v1/lists/${listId}/accounts`, { params: { account_ids: [accountId] } })
.then(() => dispatch(removeFromListSuccess(listId, accountId)))
.catch(err => dispatch(removeFromListFail(listId, accountId, err)));
};
.catch((err) => dispatch(removeFromListFail(listId, accountId, err)))
}
export const removeFromListRequest = (listId, accountId) => ({
const removeFromListRequest = (listId, accountId) => ({
type: LIST_EDITOR_REMOVE_REQUEST,
listId,
accountId,
});
})
export const removeFromListSuccess = (listId, accountId) => ({
const removeFromListSuccess = (listId, accountId) => ({
type: LIST_EDITOR_REMOVE_SUCCESS,
listId,
accountId,
});
})
export const removeFromListFail = (listId, accountId, error) => ({
const removeFromListFail = (listId, accountId, error) => ({
type: LIST_EDITOR_REMOVE_FAIL,
listId,
accountId,
error,
});
})
/**
*
*/
export const resetListAdder = () => ({
type: LIST_ADDER_RESET,
});
})
/**
*
*/
export const setupListAdder = accountId => (dispatch, getState) => {
dispatch({
type: LIST_ADDER_SETUP,
account: getState().getIn(['accounts', accountId]),
});
dispatch(fetchLists());
dispatch(fetchAccountLists(accountId));
};
})
dispatch(fetchLists())
dispatch(fetchAccountLists(accountId))
}
/**
*
*/
export const fetchAccountLists = (accountId) => (dispatch, getState) => {
if (!me) return;
if (!me) return
dispatch(fetchAccountListsRequest(accountId));
dispatch(fetchAccountListsRequest(accountId))
api(getState).get(`/api/v1/accounts/${accountId}/lists`)
.then(({ data }) => dispatch(fetchAccountListsSuccess(accountId, data)))
.catch(err => dispatch(fetchAccountListsFail(accountId, err)));
};
.catch((err) => dispatch(fetchAccountListsFail(accountId, err)))
}
export const fetchAccountListsRequest = (id) => ({
const fetchAccountListsRequest = (id) => ({
type:LIST_ADDER_LISTS_FETCH_REQUEST,
id,
});
})
export const fetchAccountListsSuccess = (id, lists) => ({
const fetchAccountListsSuccess = (id, lists) => ({
type: LIST_ADDER_LISTS_FETCH_SUCCESS,
id,
lists,
});
})
export const fetchAccountListsFail = (id, err) => ({
const fetchAccountListsFail = (id, err) => ({
type: LIST_ADDER_LISTS_FETCH_FAIL,
id,
err,
});
})
/**
*
*/
export const addToListAdder = (listId) => (dispatch, getState) => {
dispatch(addToList(listId, getState().getIn(['listAdder', 'accountId'])));
};
dispatch(addToList(listId, getState().getIn(['listAdder', 'accountId'])))
}
/**
*
*/
export const removeFromListAdder = (listId) => (dispatch, getState) => {
dispatch(removeFromList(listId, getState().getIn(['listAdder', 'accountId'])));
};
dispatch(removeFromList(listId, getState().getIn(['listAdder', 'accountId'])))
}