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 114 lines 3.1 kB view raw
1import { QueryRecord, SavedQuery, QueryState, QueryRecordRequest, TopNTable } from '../types/QueryTypes'; 2import HTTPUtils, { HTTPResponse } from '../utils/HTTPUtils'; 3import { formatQueryForRequest } from './QueryActions'; 4 5export async function createSavedQuery(queryId: string, name: string): Promise<SavedQuery> { 6 /* eslint-disable-next-line */ 7 const response: HTTPResponse = await HTTPUtils.post('saved-queries', { query_id: queryId, name }); 8 if (!response.ok) { 9 throw Error; 10 } 11 12 let data = response.data; 13 if (Array.isArray(data.query.top_n)) { 14 data.query.top_n = data.query.top_n.map(TopNTable.fromQueryParam); 15 } 16 17 return data; 18} 19 20export async function getSavedQueries(userEmail?: string, before?: string): Promise<SavedQuery[]> { 21 const response: HTTPResponse = await HTTPUtils.get('saved-queries', { 22 params: { before, user_email: userEmail } /* eslint-disable-line */, 23 }); 24 25 if (!response.ok) { 26 return []; 27 } 28 29 let data = response.data; 30 31 return data.map((d: any) => { 32 if (Array.isArray(d.query.top_n)) { 33 d.query.top_n = d.query.top_n.map(TopNTable.fromQueryParam); 34 } 35 return d; 36 }); 37} 38 39export async function getSavedQuery(savedQueryId: string): Promise<SavedQuery> { 40 const response: HTTPResponse = await HTTPUtils.get(`saved-queries/${savedQueryId}`); 41 42 if (!response.ok) { 43 throw Error('Saved query not found'); 44 } 45 46 let data = response.data; 47 if (Array.isArray(data.query.top_n)) { 48 data.query.top_n = data.query.top_n.map(TopNTable.fromQueryParam); 49 } 50 51 return data; 52} 53 54export async function updateSavedQuery( 55 savedQueryId: string, 56 name: string, 57 queryState?: QueryState 58): Promise<SavedQuery> { 59 const updateData: { name: string; query?: QueryRecordRequest } = { name }; 60 61 if (queryState != null) { 62 updateData.query = formatQueryForRequest(queryState); 63 } 64 65 const response: HTTPResponse = await HTTPUtils.patch(`saved-queries/${savedQueryId}`, updateData); 66 67 if (!response.ok) { 68 throw Error('Error updating saved query'); 69 } 70 71 let data = response.data; 72 if (Array.isArray(data.query.top_n)) { 73 data.query.top_n = data.query.top_n.map(TopNTable.fromQueryParam); 74 } 75 76 return data; 77} 78 79export async function getSavedQueryHistory(savedQueryId: string): Promise<QueryRecord[]> { 80 const response: HTTPResponse = await HTTPUtils.get(`saved-queries/${savedQueryId}/history`); 81 82 if (!response.ok) { 83 return []; 84 } 85 86 let data = response.data; 87 88 return data.map((d: any) => { 89 if (Array.isArray(d.top_n)) { 90 d.top_n = d.top_n.map(TopNTable.fromQueryParam); 91 } 92 return d; 93 }); 94} 95 96export async function deleteSavedQuery(savedQueryId: string): Promise<void> { 97 const response: HTTPResponse = await HTTPUtils.delete(`saved-queries/${savedQueryId}`); 98 99 if (!response.ok) { 100 throw Error('Error deleting saved query'); 101 } 102 103 return response.data; 104} 105 106export async function getSavedQueryUserEmails(): Promise<string[]> { 107 const response: HTTPResponse = await HTTPUtils.get('saved-queries/user-emails'); 108 109 if (!response.ok) { 110 return []; 111 } 112 113 return response.data; 114}