Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | 1x 1x | import { authenticatedInstance } from "../../api"; import { BaseConcept, Mapping } from "./types"; import { buildPartialSearchQuery } from "../../utils"; const optionallyIncludeList = (key: string, value: string[]) => // https://stackoverflow.com/a/40560953/6448384 value.length > 0 && { [key]: value.join(",") }; // timestamp here is to disable caching. response occasionally excluded headers when caching was turned on const api = { retrievePublicSources: (page: number = 1, limit: number = 10, q = "") => authenticatedInstance.get("/sources/", { params: { page, limit, q: buildPartialSearchQuery(q), verbose: true, timestamp: new Date().getTime() } }), concepts: { create: (sourceUrl: string, data: BaseConcept) => authenticatedInstance.post(`${sourceUrl}concepts/`, data), retrieve: (retrieveParams: { conceptsUrl?: string; page?: number; limit?: number; q?: string; sortDirection?: string; sortBy?: string; dataTypeFilters?: string[]; classFilters?: string[]; sourceFilters?: string[]; includeRetired?: boolean; includeAdded?: boolean; }) => { const { conceptsUrl = "#", page = 1, limit = 10, q = "", sortDirection = "sortDesc", sortBy = "_score", dataTypeFilters = [] as string[], classFilters = [] as string[], sourceFilters = [] as string[], includeRetired = false, includeAdded = false } = retrieveParams; return authenticatedInstance.get(conceptsUrl, { params: { page, limit, q: buildPartialSearchQuery(q), [sortDirection]: sortBy, ...optionallyIncludeList("datatype", dataTypeFilters), ...optionallyIncludeList("conceptClass", classFilters), ...optionallyIncludeList("source", sourceFilters), timestamp: new Date().getTime(), includeRetired, includeAdded } }); }, retrieveActive: (retrieveActiveParams: { conceptsUrl?: string; page?: number; limit?: number; q?: string; sortDirection?: string; sortBy?: string; dataTypeFilters?: string[]; classFilters?: string[]; sourceFilters?: string[]; includeRetired?: boolean; }) => { const { conceptsUrl = "#", page = 1, limit = 10, q = "", sortDirection = "sortDesc", sortBy = "_score", dataTypeFilters = [] as string[], classFilters = [] as string[], sourceFilters = [] as string[] } = retrieveActiveParams; return authenticatedInstance.get(conceptsUrl, { params: { page, limit, q: buildPartialSearchQuery(q), [sortDirection]: sortBy, ...optionallyIncludeList("datatype", dataTypeFilters), ...optionallyIncludeList("conceptClass", classFilters), ...optionallyIncludeList("source", sourceFilters), timestamp: new Date().getTime() } }); } }, concept: { retrieve: (conceptUrl: string) => authenticatedInstance.get(conceptUrl, { params: { verbose: true, includeMappings: true } }), update: (conceptUrl: string, data: BaseConcept) => authenticatedInstance.put(conceptUrl, data) }, mappings: { create: (sourceUrl: string, data: Mapping) => authenticatedInstance.post(`${sourceUrl}mappings/`, data) }, mapping: { update: (mappingUrl: string, data: Mapping) => authenticatedInstance.put(mappingUrl, data) } }; export default api; |