Skip to content
Snippets Groups Projects
Select Git revision
  • 0c4c35ce1d3e41bfb80e5d1c44c8b15edc861124
  • master default protected
  • replication_test
  • release-1.10 protected
  • dev protected
  • 556-usage-statistics
  • 553-semantic-recommendation-2
  • 553-semantic-recommendation
  • release-1.9 protected
  • 551-init-broker-service-permissions
  • 549-test-oai-pmh
  • 545-saving-multiple-times-breaks-pid-metadata
  • 499-standalone-compute-service-2
  • 539-load-tests
  • hotfix/helm-chart
  • luca_ba_new_interface
  • 534-bug-when-adding-access-to-user-that-is-not-registered-at-dashboard-service
  • release-1.8 protected
  • 533-integrate-semantic-recommendation
  • feature/openshift
  • 518-spark-doesn-t-map-the-headers-correct
  • v1.10.4 protected
  • v1.10.3 protected
  • v1.10.2 protected
  • v1.10.1 protected
  • v1.10.0-rc13 protected
  • v1.10.0-rc12 protected
  • v1.10.0-rc11 protected
  • v1.10.0-rc10 protected
  • v1.10.0-rc9 protected
  • v1.10.0-rc8 protected
  • v1.10.0-rc7 protected
  • v1.10.0-rc6 protected
  • v1.10.0-rc5 protected
  • v1.10.0-rc4 protected
  • v1.10.0-rc3 protected
  • v1.10.0-rc2 protected
  • v1.10.0rc1 protected
  • v1.10.0rc0 protected
  • v1.10.0 protected
  • v1.9.3 protected
41 results

query-service.ts

Blame
  • query-service.ts 7.55 KiB
    import {format} from 'sql-formatter'
    import type {AxiosRequestConfig} from 'axios'
    import {axiosErrorToApiError} from '@/utils'
    
    export const useQueryService = (): any => {
      async function findAll(databaseId: number, persisted: boolean): Promise<QueryDto[]> {
        const axios = useAxiosInstance()
        console.debug('find queries')
        return new Promise<QueryDto[]>((resolve, reject) => {
          axios.get<QueryDto[]>(`/api/database/${databaseId}/subset`, {params: (persisted && {persisted})})
            .then((response) => {
              console.info(`Found ${response.data.length} query(s)`)
              resolve(response.data)
            })
            .catch((error) => {
              if (error.response.status === 403) {
                /* ignore */
                resolve([])
              }
              console.error('Failed to find queries', error)
              reject(axiosErrorToApiError(error))
            })
        })
      }
    
      async function findOne(databaseId: number, queryId: number): Promise<QueryDto> {
        const axios = useAxiosInstance()
        console.debug('find query with id', queryId, 'in database with id', databaseId)
        return new Promise<QueryDto>((resolve, reject) => {
          axios.get<QueryDto>(`/api/database/${databaseId}/subset/${queryId}`)
            .then((response) => {
              console.info('Found query with id', queryId, 'in database with id', databaseId)
              resolve(response.data)
            })
            .catch((error) => {
              console.error('Failed to find query', error)
              reject(axiosErrorToApiError(error))
            })
        })
      }
    
      async function update(databaseId: number, queryId: number, data: QueryPersistDto): Promise<QueryDto> {
        const axios = useAxiosInstance()
        console.debug('update query with id', queryId, 'in database with id', databaseId)
        return new Promise<QueryDto>((resolve, reject) => {
          axios.put<QueryDto>(`/api/database/${databaseId}/subset/${queryId}`, data)
            .then((response) => {
              console.info('Updated query with id', queryId, 'in database with id', databaseId)
              resolve(response.data)
            })
            .catch((error) => {
              console.error('Failed to update query', error)
              reject(axiosErrorToApiError(error))
            })
        })
      }
    
      async function exportCsv(databaseId: number, queryId: number): Promise<any> {
        const axios = useAxiosInstance()
        const config: AxiosRequestConfig = {
          responseType: 'blob',
          headers: {
            Accept: 'text/csv'
          }
        }
        console.debug('export query with id', queryId, 'in database with id', databaseId)
        return new Promise<any>((resolve, reject) => {
          axios.get<any>(`/api/database/${databaseId}/subset/${queryId}`, config)
            .then((response) => {
              console.info('Exported query with id', queryId, 'in database with id', databaseId)