1
0
Fork 0
mirror of synced 2024-08-05 05:11:43 +12:00

Backwards compat.

This commit is contained in:
mike12345567 2024-05-17 14:16:08 +01:00
parent ec2ec4014c
commit 16c69dcc33
4 changed files with 23 additions and 11 deletions

View file

@ -86,8 +86,9 @@ export const createValidatedConfigStore = (integration, config) => {
([$configStore, $errorsStore, $selectedValidatorsStore]) => {
const validatedConfig = []
const allowedRestKeys = ["rejectUnauthorized", "downloadImages"]
Object.entries(integration.datasource).forEach(([key, properties]) => {
if (integration.name === "REST" && key !== "rejectUnauthorized") {
if (integration.name === "REST" && !allowedRestKeys.includes(key)) {
return
}

View file

@ -1,22 +1,22 @@
import {
Integration,
DatasourceFieldType,
QueryType,
PaginationConfig,
HttpMethod,
Integration,
IntegrationBase,
PaginationConfig,
PaginationValues,
RestQueryFields as RestQuery,
RestConfig,
QueryType,
RestAuthType,
RestBasicAuthConfig,
RestBearerAuthConfig,
HttpMethod,
RestConfig,
RestQueryFields as RestQuery,
} from "@budibase/types"
import get from "lodash/get"
import * as https from "https"
import qs from "querystring"
import fetch from "node-fetch"
import type { Response } from "node-fetch"
import fetch from "node-fetch"
import { formatBytes } from "../utilities"
import { performance } from "perf_hooks"
import FormData from "form-data"
@ -87,6 +87,12 @@ const SCHEMA: Integration = {
default: true,
required: false,
},
downloadImages: {
display: "Download images",
type: DatasourceFieldType.BOOLEAN,
default: true,
required: false,
},
},
query: {
create: {
@ -139,7 +145,8 @@ class RestIntegration implements IntegrationBase {
filename: string | undefined
const { contentType, contentDisposition } = getAttachmentHeaders(
response.headers
response.headers,
{ downloadImages: this.config.downloadImages }
)
if (
contentDisposition.includes("filename") ||

View file

@ -1,6 +1,9 @@
import type { Headers } from "node-fetch"
export function getAttachmentHeaders(headers: Headers) {
export function getAttachmentHeaders(
headers: Headers,
opts?: { downloadImages?: boolean }
) {
const contentType = headers.get("content-type") || ""
let contentDisposition = headers.get("content-disposition") || ""
@ -25,7 +28,7 @@ export function getAttachmentHeaders(headers: Headers) {
}
// for images which don't supply a content disposition, make one up, as binary
// data for images in REST responses isn't really useful, we should always download them
else if (contentType.startsWith("image/")) {
else if (opts?.downloadImages && contentType.startsWith("image/")) {
const format = contentType.split("/")[1]
return {
contentDisposition: `attachment; filename="image.${format}"`,

View file

@ -46,6 +46,7 @@ export interface DynamicVariable {
export interface RestConfig {
url: string
rejectUnauthorized: boolean
downloadImages?: boolean
defaultHeaders: {
[key: string]: any
}