Skip to content
Snippets Groups Projects
Unverified Commit 0579e824 authored by xgui3783's avatar xgui3783 Committed by GitHub
Browse files

Merge pull request #344 from HumanBrainProject/chore/favDsPreview

chore: preview from fav dataest
parents 8d3a74a7 1e58de0b
No related branches found
No related tags found
No related merge requests found
......@@ -2,7 +2,7 @@ const express = require('express')
const path = require('path')
const fs = require('fs')
const datasetsRouter = express.Router()
const { init, getDatasets, getPreview, getDatasetFromId, getDatasetFileAsZip, getTos } = require('./query')
const { init, getDatasets, getPreview, getDatasetFromId, getDatasetFileAsZip, getTos, hasPreview } = require('./query')
const url = require('url')
const qs = require('querystring')
......@@ -148,8 +148,15 @@ const checkKgQuery = (req, res, next) => {
else return next()
}
datasetsRouter.get('/hasPreview', cacheMaxAge24Hr, async (req, res) => {
const { datasetName } = req.query
if (!datasetName || datasetName === '') return res.status(400).send(`datasetName as query param is required.`)
return res.status(200).json({
preview: hasPreview({ datasetName })
})
})
datasetsRouter.get('/kgInfo', checkKgQuery, cacheMaxAge24Hr, async (req, res) => {
const { kgId } = req.query
const { user } = req
const stream = await getDatasetFromId({ user, kgId, returnAsStream: true })
......
......@@ -326,6 +326,7 @@ module.exports = {
init,
getDatasets,
getPreview,
hasPreview,
getTos
}
......@@ -119,11 +119,27 @@ export class DataBrowserUseEffect implements OnDestroy{
switchMap(arr =>
merge(
...arr.map(({ id: kgId }) =>
from( this.kgSingleDatasetService.getInfoFromKg({ kgId }))
.pipe(catchError(err => {
console.log(`fetchInfoFromKg error`, err)
return of(null)
})))
from( this.kgSingleDatasetService.getInfoFromKg({ kgId })).pipe(
catchError(err => {
console.log(`fetchInfoFromKg error`, err)
return of(null)
}),
switchMap(dataset =>
this.kgSingleDatasetService.datasetHasPreview(dataset).pipe(
catchError(err => {
console.log(`fetching hasPreview error`, err)
return of({})
}),
map(resp => {
return {
...dataset,
...resp
}
})
)
)
)
)
).pipe(
filter(v => !!v),
scan((acc, curr) => acc.concat(curr), [])
......
......@@ -8,6 +8,7 @@ import { MatDialog } from "@angular/material";
import { FileViewer } from "./fileviewer/fileviewer.component";
import { ADD_NG_LAYER, REMOVE_NG_LAYER } from "src/services/stateStore.service";
import { Subscription, Subject } from "rxjs";
import { HttpClient } from "@angular/common/http";
@Injectable({ providedIn: 'root' })
export class KgSingleDatasetService implements OnDestroy{
......@@ -20,7 +21,8 @@ export class KgSingleDatasetService implements OnDestroy{
constructor(
private constantService: AtlasViewerConstantsServices,
private store$: Store<any>,
private dialog: MatDialog
private dialog: MatDialog,
private http: HttpClient
) {
this.subscriptions.push(
......@@ -39,6 +41,13 @@ export class KgSingleDatasetService implements OnDestroy{
}
}
public datasetHasPreview({ name } : { name: string }){
const _url = new URL(`${this.constantService.backendUrl}datasets/hasPreview`)
const searchParam = _url.searchParams
searchParam.set('datasetName', name)
return this.http.get(_url.toString())
}
public getInfoFromKg({ kgId, kgSchema = 'minds/core/dataset/v1.0.0' }: Partial<KgQueryInterface>) {
const _url = new URL(`${this.constantService.backendUrl}datasets/kgInfo`)
const searchParam = _url.searchParams
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment