Ankilan/src/actions/api/dictionary.js

48 lines
1.2 KiB
JavaScript

import {search} from 'urban-dictionary-client';
import {
SET_AVAILABLE_API,
URBAN_DICTIONARY_API,
WORDS_API,
} from '../../constants/api-constants';
const fetch = require('node-fetch');
import {getResFromWordsAPI, parseWordsApi} from './words-api';
import {
getResFromUrbanDictionary,
parseUrbanDictionaryApi,
} from './urban-dictionary';
import {createDictionary} from '../dictionary/create-dictionary';
const getAvailableApi = (apiArray = []) => {
for (const api of apiArray) {
if (api) {
return api;
}
}
return false;
};
const setAvailableApi = api => ({
type: SET_AVAILABLE_API,
payload: api,
});
export const wordInfo = word => async dispatch => {
try {
const api1 = await getResFromWordsAPI(word);
//TODO add Urban Dictionary
// const api2 = await getResFromUrbanDictionary(word);
// const availableApi = getAvailableApi([api1, api2]);
// if (availableApi === false) {
// throw new Error('word not found');
// }
//function which return universal template for more simple interaction with api
//TODO available dictionary instead api1
await dispatch(setAvailableApi(api1));
await createDictionary(api1);
} catch (e) {
console.log(e);
}
};