86 lines
2.6 KiB
JavaScript
86 lines
2.6 KiB
JavaScript
import axios from 'axios'
|
|
import { cloneDeep } from 'lodash'
|
|
import appConfig from '../appConfig'
|
|
import {createApi} from '../common/Common'
|
|
import { hubspotBaseURL } from '../common/constants'
|
|
import { getHPContext } from '../common/helper'
|
|
import { handleError, handleResponse } from './httpInterceptor/httpInterceptor'
|
|
|
|
const slRoot = '/api/v1/source-list'
|
|
|
|
export const searchQuery = createApi('POST', '/api/v1/query/search', {})
|
|
|
|
export const searchSources = createApi('POST', '/api/v1/source-index/', {})
|
|
|
|
export const addSourcesToLists = createApi('POST', '/api/v1/source-index/add-to-sources-list', {})
|
|
|
|
export const replaceSourceListsForSource = createApi('POST', '/api/v1/source-index/{id}/list', {
|
|
urlData: (params) => ({id: params.id}),
|
|
inputData: (params) => JSON.stringify({sourceLists: params.sourceLists})
|
|
})
|
|
|
|
export const getSourceLists = createApi('POST', `${slRoot}/list`, {})
|
|
|
|
export const addSourceLists = createApi('POST', `${slRoot}/`, {
|
|
inputData: (name) => JSON.stringify({name})
|
|
})
|
|
|
|
export const renameSourceLists = createApi('PUT', `${slRoot}/{id}`, {
|
|
urlData: (params) => ({id: params.id}),
|
|
inputData: (params) => JSON.stringify({name: params.name})
|
|
})
|
|
|
|
export const cloneSourceLists = createApi('POST', `${slRoot}/{id}/clone`, {
|
|
urlData: (params) => ({id: params.id}),
|
|
inputData: (params) => JSON.stringify({name: params.name})
|
|
})
|
|
|
|
export const deleteSourceLists = createApi('DELETE', `${slRoot}/{id}`, {
|
|
urlData: (id) => ({id}),
|
|
inputData: () => {}
|
|
})
|
|
|
|
export const getSourcesOfList = createApi('POST', `${slRoot}/{id}/sources/search`, {
|
|
urlData: (data, id) => ({id})
|
|
})
|
|
|
|
export const shareSourceList = createApi('POST', `${slRoot}/{id}/share`, {
|
|
urlData: (id) => ({id}),
|
|
inputData: () => null
|
|
})
|
|
export const unshareSourceList = createApi('POST', `${slRoot}/{id}/unshare`, {
|
|
urlData: (id) => ({id}),
|
|
inputData: () => null
|
|
})
|
|
|
|
// submit search queries to Hubspot form API for free user
|
|
export const submitSearchHubspot = (dataObj) => {
|
|
const { hubSpotportalID } = appConfig;
|
|
if (!hubSpotportalID) {
|
|
return Promise.resolve('No IDs');
|
|
}
|
|
|
|
const data = cloneDeep(dataObj);
|
|
const hubSpotFormURL = `${hubspotBaseURL}/3f297902-d32d-44bb-89a6-12af1c7b886e`;
|
|
const hubSpotMapping = {
|
|
email: 'email',
|
|
searchquery: 'searchquery'
|
|
// raw_query: 'raw_query'
|
|
};
|
|
|
|
const newObj = Object.keys(hubSpotMapping)
|
|
.filter((key) => data[key])
|
|
.map((key) => ({
|
|
name: hubSpotMapping[key],
|
|
value: data[key]
|
|
}));
|
|
|
|
return axios
|
|
.post(hubSpotFormURL, {
|
|
fields: newObj,
|
|
context: getHPContext()
|
|
})
|
|
.then((response) => handleResponse(response))
|
|
.catch((error) => handleError(error));
|
|
};
|