feat(google-sheets): create spreadsheet row

This commit is contained in:
Rıdvan Akca
2023-05-25 18:22:54 +03:00
committed by Ali BARIN
parent 078b8efb56
commit 3fd1d4d9b3
11 changed files with 285 additions and 5 deletions

View File

@@ -0,0 +1,3 @@
import listSheetHeaders from './list-sheet-headers';
export default [listSheetHeaders];

View File

@@ -0,0 +1,67 @@
import { IGlobalVariable } from '@automatisch/types';
type TSheetsResponse = {
sheets: {
properties: {
sheetId: string;
title: string;
};
}[];
};
type TSheetsValueResponse = {
majorDimension: string;
range: string;
values: string[][];
};
export default {
name: 'List Sheet Headers',
key: 'listSheetHeaders',
async run($: IGlobalVariable) {
if (!$.step.parameters.spreadsheetId || !$.step.parameters.worksheetId) {
return;
}
const {
data: { sheets },
} = await $.http.get<TSheetsResponse>(
`/v4/spreadsheets/${$.step.parameters.spreadsheetId}`
);
const selectedSheet = sheets.find(
(sheet) => sheet.properties.sheetId === $.step.parameters.worksheetId
);
const sheetName = selectedSheet.properties.title;
const range = `${sheetName}!1:1`;
const params: Record<string, unknown> = {
majorDimension: 'ROWS',
};
const { data } = await $.http.get<TSheetsValueResponse>(
`/v4/spreadsheets/${$.step.parameters.spreadsheetId}/values/${range}`,
{
params,
}
);
if (!data.values) {
return;
}
const result = data.values[0].map((item: string, index: number) => ({
label: item,
key: `header-${index}`,
type: 'string' as const,
required: false,
value: item,
variables: true,
}));
return result;
},
};