111 lines
2.2 KiB
JavaScript
111 lines
2.2 KiB
JavaScript
import { IntegrationTypes } from "constants/backend"
|
|
|
|
export function schemaToFields(schema) {
|
|
const response = {}
|
|
if (schema && typeof schema === "object") {
|
|
for (let [field, value] of Object.entries(schema)) {
|
|
response[field] = value?.type || "string"
|
|
}
|
|
}
|
|
return response
|
|
}
|
|
|
|
export function fieldsToSchema(fields) {
|
|
const response = {}
|
|
if (fields && typeof fields === "object") {
|
|
for (let [name, type] of Object.entries(fields)) {
|
|
response[name] = { name, type }
|
|
}
|
|
}
|
|
return response
|
|
}
|
|
|
|
export function breakQueryString(qs) {
|
|
if (!qs) {
|
|
return {}
|
|
}
|
|
if (qs.includes("?")) {
|
|
qs = qs.split("?")[1]
|
|
}
|
|
const params = qs.split("&")
|
|
let paramObj = {}
|
|
for (let param of params) {
|
|
const [key, value] = param.split("=")
|
|
paramObj[key] = value
|
|
}
|
|
return paramObj
|
|
}
|
|
|
|
export function buildQueryString(obj) {
|
|
let str = ""
|
|
if (obj) {
|
|
for (let [key, value] of Object.entries(obj)) {
|
|
if (!key || key === "") {
|
|
continue
|
|
}
|
|
if (str !== "") {
|
|
str += "&"
|
|
}
|
|
str += `${key}=${value || ""}`
|
|
}
|
|
}
|
|
return str
|
|
}
|
|
|
|
export function keyValueToQueryParameters(obj) {
|
|
let array = []
|
|
if (obj && typeof obj === "object") {
|
|
for (let [key, value] of Object.entries(obj)) {
|
|
array.push({ name: key, default: value })
|
|
}
|
|
}
|
|
return array
|
|
}
|
|
|
|
export function queryParametersToKeyValue(array) {
|
|
let obj = {}
|
|
if (Array.isArray(array)) {
|
|
for (let param of array) {
|
|
obj[param.name] = param.default
|
|
}
|
|
}
|
|
return obj
|
|
}
|
|
|
|
export function customQueryIconText(datasource, query) {
|
|
if (datasource.source !== IntegrationTypes.REST) {
|
|
return
|
|
}
|
|
switch (query.queryVerb) {
|
|
case "create":
|
|
return "POST"
|
|
case "update":
|
|
return "PUT"
|
|
case "read":
|
|
return "GET"
|
|
case "delete":
|
|
return "DELETE"
|
|
case "patch":
|
|
return "PATCH"
|
|
}
|
|
}
|
|
|
|
export function customQueryIconColor(datasource, query) {
|
|
if (datasource.source !== IntegrationTypes.REST) {
|
|
return
|
|
}
|
|
switch (query.queryVerb) {
|
|
case "create":
|
|
return "#DCC339"
|
|
case "update":
|
|
return "#5197EC"
|
|
case "read":
|
|
return "#59B294"
|
|
case "delete":
|
|
return "#E16B71"
|
|
case "patch":
|
|
default:
|
|
return
|
|
}
|
|
}
|