Mirror of https://github.com/roostorg/osprey github.com/roostorg/osprey
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at main 68 lines 1.9 kB view raw
1import { QueryRecord, QueryState, QueryRecordRequest, TopNTable } from '../types/QueryTypes'; 2import HTTPUtils, { HTTPResponse } from '../utils/HTTPUtils'; 3 4export function formatQueryForRequest({ executedQuery, sortOrder, topNTables }: QueryState): QueryRecordRequest { 5 return { 6 /* eslint-disable */ 7 query_filter: executedQuery.queryFilter, 8 date_range: [executedQuery.start, executedQuery.end], 9 top_n: [...topNTables.values()].map((table) => table.asQueryParam()), 10 sort_order: sortOrder, 11 /* eslint-enable */ 12 }; 13} 14 15export async function validateQuery(queryFilter: string): Promise<boolean> { 16 const response: HTTPResponse = await HTTPUtils.post('queries/validate', { 17 query_filter: queryFilter /* eslint-disable-line */, 18 }); 19 return response.ok; 20} 21 22export async function saveQueryToHistory({ 23 executedQuery, 24 sortOrder, 25 topNTables, 26 charts, 27}: QueryState): Promise<QueryRecord | void> { 28 if (executedQuery == null) return; 29 const response: HTTPResponse = await HTTPUtils.post( 30 'queries/query', 31 formatQueryForRequest({ executedQuery, sortOrder, topNTables, charts }) 32 ); 33 34 if (!response.ok) { 35 return; 36 } 37 38 return response.data; 39} 40 41export async function getQueriesHistory(userEmail?: string, before?: string): Promise<QueryRecord[]> { 42 const response: HTTPResponse = await HTTPUtils.get('queries', { 43 params: { before, user_email: userEmail } /* eslint-disable-line */, 44 }); 45 46 if (!response.ok) { 47 return []; 48 } 49 50 let data = response.data; 51 52 return data.map((d: any) => { 53 if (Array.isArray(d.top_n)) { 54 d.top_n = d.top_n.map(TopNTable.fromQueryParam); 55 } 56 return d; 57 }); 58} 59 60export async function getQueryUserEmails(): Promise<string[]> { 61 const response: HTTPResponse = await HTTPUtils.get('queries/user-emails'); 62 63 if (!response.ok) { 64 return []; 65 } 66 67 return response.data; 68}