2020-03-17 05:00:14 +00:00
|
|
|
import {search} from 'urban-dictionary-client';
|
2020-03-18 19:58:12 +00:00
|
|
|
import {
|
|
|
|
SET_AVAILABLE_API,
|
2020-03-20 15:19:09 +00:00
|
|
|
SET_PARSED_DICTIONARY,
|
2020-03-18 19:58:12 +00:00
|
|
|
URBAN_DICTIONARY_API,
|
|
|
|
WORDS_API,
|
|
|
|
} from '../../constants/api-constants';
|
2020-03-17 05:00:14 +00:00
|
|
|
const fetch = require('node-fetch');
|
2020-03-18 19:58:12 +00:00
|
|
|
import {getResFromWordsAPI, parseWordsApi} from './words-api';
|
|
|
|
import {
|
|
|
|
getResFromUrbanDictionary,
|
|
|
|
parseUrbanDictionaryApi,
|
|
|
|
} from './urban-dictionary';
|
|
|
|
import {createDictionary} from '../dictionary/create-dictionary';
|
2020-03-17 05:00:14 +00:00
|
|
|
|
|
|
|
const getAvailableApi = (apiArray = []) => {
|
|
|
|
for (const api of apiArray) {
|
|
|
|
if (api) {
|
|
|
|
return api;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
};
|
|
|
|
|
|
|
|
const setAvailableApi = api => ({
|
|
|
|
type: SET_AVAILABLE_API,
|
|
|
|
payload: api,
|
|
|
|
});
|
2020-03-20 15:19:09 +00:00
|
|
|
const setDictioanry = dictioanry => ({
|
|
|
|
type: SET_PARSED_DICTIONARY,
|
|
|
|
payload: dictioanry,
|
|
|
|
});
|
2020-03-18 19:58:12 +00:00
|
|
|
|
2020-03-17 05:00:14 +00:00
|
|
|
export const wordInfo = word => async dispatch => {
|
|
|
|
try {
|
|
|
|
const api1 = await getResFromWordsAPI(word);
|
2020-03-19 20:04:57 +00:00
|
|
|
//TODO add Urban Dictionary
|
|
|
|
|
|
|
|
// const api2 = await getResFromUrbanDictionary(word);
|
|
|
|
// const availableApi = getAvailableApi([api1, api2]);
|
|
|
|
// if (availableApi === false) {
|
|
|
|
// throw new Error('word not found');
|
|
|
|
// }
|
|
|
|
|
2020-03-18 19:58:12 +00:00
|
|
|
//function which return universal template for more simple interaction with api
|
2020-03-19 20:04:57 +00:00
|
|
|
//TODO available dictionary instead api1
|
|
|
|
await dispatch(setAvailableApi(api1));
|
2020-03-20 15:19:09 +00:00
|
|
|
const wordDictionary = await createDictionary(api1);
|
|
|
|
dispatch(setDictioanry(wordDictionary));
|
2020-03-17 05:00:14 +00:00
|
|
|
} catch (e) {
|
|
|
|
console.log(e);
|
|
|
|
}
|
|
|
|
};
|