Skip to content

Commit f33d3b2

Browse files
committed
🚑️ Fix Google Sheet authentication not refreshing
1 parent 40884d5 commit f33d3b2

File tree

13 files changed

+199
-126
lines changed

13 files changed

+199
-126
lines changed

apps/builder/package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@
7979
"emojilib": "3.0.10",
8080
"framer-motion": "11.1.7",
8181
"google-auth-library": "10.1.0",
82-
"google-spreadsheet": "4.1.4",
8382
"immer": "10.0.2",
8483
"ioredis": "5.4.1",
8584
"jsonwebtoken": "9.0.1",

apps/builder/src/features/blocks/integrations/googleSheets/api/getSpreadsheetName.ts

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import { isReadWorkspaceFobidden } from "@/features/workspace/helpers/isReadWorkspaceFobidden";
22
import { authenticatedProcedure } from "@/helpers/server/trpc";
33
import { TRPCError } from "@trpc/server";
4-
import { getAuthenticatedGoogleClient } from "@typebot.io/credentials/getAuthenticatedGoogleClient";
4+
import { getGoogleSpreadsheet } from "@typebot.io/credentials/getGoogleSpreadsheet";
55
import prisma from "@typebot.io/prisma";
66
import { z } from "@typebot.io/zod";
7-
import { GoogleSpreadsheet } from "google-spreadsheet";
87

98
export const getSpreadsheetName = authenticatedProcedure
109
.input(
@@ -51,22 +50,19 @@ export const getSpreadsheetName = authenticatedProcedure
5150
message: "Credentials not found",
5251
});
5352

54-
const client = await getAuthenticatedGoogleClient(
55-
credentials.id,
56-
workspaceId,
57-
);
58-
59-
if (!client?.credentials.access_token)
60-
throw new TRPCError({
61-
code: "NOT_FOUND",
62-
message: "Google client could not be initialized",
63-
});
64-
6553
try {
66-
const googleSheet = new GoogleSpreadsheet(spreadsheetId, {
67-
token: client.credentials.access_token,
54+
const googleSheet = await getGoogleSpreadsheet({
55+
credentialsId: credentials.id,
56+
spreadsheetId,
57+
workspaceId,
6858
});
6959

60+
if (!googleSheet)
61+
throw new TRPCError({
62+
code: "NOT_FOUND",
63+
message: "Google sheet not found",
64+
});
65+
7066
await googleSheet.loadInfo();
7167

7268
return { name: googleSheet.title };

apps/builder/src/pages/api/integrations/google-sheets/spreadsheets/[id]/sheets.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
import { getAuthenticatedUser } from "@/features/auth/helpers/getAuthenticatedUser";
2-
import { getAuthenticatedGoogleClient } from "@typebot.io/credentials/getAuthenticatedGoogleClient";
2+
import { getGoogleSpreadsheet } from "@typebot.io/credentials/getGoogleSpreadsheet";
33
import {
44
badRequest,
55
methodNotAllowed,
66
notAuthenticated,
77
} from "@typebot.io/lib/api/utils";
88
import { isDefined } from "@typebot.io/lib/utils";
9-
import { GoogleSpreadsheet } from "google-spreadsheet";
109
import type { NextApiRequest, NextApiResponse } from "next";
1110

1211
const handler = async (req: NextApiRequest, res: NextApiResponse) => {
@@ -18,17 +17,16 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
1817
const workspaceId = req.query.workspaceId as string | undefined;
1918
if (!credentialsId || workspaceId) return badRequest(res);
2019
const spreadsheetId = req.query.id as string;
21-
const client = await getAuthenticatedGoogleClient(
20+
const doc = await getGoogleSpreadsheet({
2221
credentialsId,
22+
spreadsheetId,
2323
workspaceId,
24-
);
25-
if (!client?.credentials.access_token)
24+
});
25+
if (!doc)
2626
return res
2727
.status(404)
2828
.send({ message: "Couldn't find credentials in database" });
29-
const doc = new GoogleSpreadsheet(spreadsheetId, {
30-
token: client.credentials.access_token,
31-
});
29+
3230
try {
3331
await doc.loadInfo();
3432
return res.send({
@@ -53,6 +51,7 @@ const handler = async (req: NextApiRequest, res: NextApiResponse) => {
5351
).filter(isDefined),
5452
});
5553
} catch (err) {
54+
console.log(err);
5655
return res.status(404).send({
5756
message:
5857
"Couldn't find sheet, you maybe don't have permission to read it",

apps/viewer/src/pages/api/integrations/google-sheets/spreadsheets/[spreadsheetId]/sheets/[sheetId].ts

Lines changed: 20 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,11 @@ import type {
44
GoogleSheetsInsertRowOptions,
55
GoogleSheetsUpdateRowOptions,
66
} from "@typebot.io/blocks-integrations/googleSheets/schema";
7-
import { getAuthenticatedGoogleDoc } from "@typebot.io/bot-engine/blocks/integrations/googleSheets/helpers/getAuthenticatedGoogleDoc";
87
import { saveErrorLog } from "@typebot.io/bot-engine/logs/saveErrorLog";
98
import { saveSuccessLog } from "@typebot.io/bot-engine/logs/saveSuccessLog";
109
import { LogicalOperator } from "@typebot.io/conditions/constants";
1110
import { ComparisonOperators } from "@typebot.io/conditions/constants";
12-
import { getAuthenticatedGoogleClient } from "@typebot.io/credentials/getAuthenticatedGoogleClient";
11+
import { getGoogleSpreadsheet } from "@typebot.io/credentials/getGoogleSpreadsheet";
1312
import {
1413
badRequest,
1514
initMiddleware,
@@ -18,10 +17,7 @@ import {
1817
} from "@typebot.io/lib/api/utils";
1918
import { hasValue, isDefined } from "@typebot.io/lib/utils";
2019
import Cors from "cors";
21-
import {
22-
GoogleSpreadsheet,
23-
type GoogleSpreadsheetRow,
24-
} from "google-spreadsheet";
20+
import type { GoogleSpreadsheetRow } from "google-spreadsheet";
2521
import type { NextApiRequest, NextApiResponse } from "next";
2622

2723
const cors = initMiddleware(Cors());
@@ -67,11 +63,15 @@ const getRows = async (req: NextApiRequest, res: NextApiResponse) => {
6763
return;
6864
}
6965

70-
const doc = await getAuthenticatedGoogleDoc({
66+
const doc = await getGoogleSpreadsheet({
7167
credentialsId,
7268
spreadsheetId,
73-
workspaceId: "",
69+
workspaceId: undefined,
7470
});
71+
if (!doc) {
72+
notFound(res);
73+
return;
74+
}
7575
await doc.loadInfo();
7676
const sheet = doc.sheetsById[Number(sheetId)];
7777
try {
@@ -123,11 +123,15 @@ const insertRow = async (req: NextApiRequest, res: NextApiResponse) => {
123123
values: { [key: string]: string };
124124
};
125125
if (!hasValue(credentialsId)) return badRequest(res);
126-
const doc = await getAuthenticatedGoogleDoc({
126+
const doc = await getGoogleSpreadsheet({
127127
credentialsId,
128128
spreadsheetId,
129-
workspaceId: "",
129+
workspaceId: undefined,
130130
});
131+
if (!doc) {
132+
notFound(res);
133+
return;
134+
}
131135
try {
132136
await doc.loadInfo();
133137
const sheet = doc.sheetsById[Number(sheetId)];
@@ -156,11 +160,15 @@ const updateRow = async (req: NextApiRequest, res: NextApiResponse) => {
156160
const { resultId, credentialsId, values } = body;
157161

158162
if (!hasValue(credentialsId) || !referenceCell) return badRequest(res);
159-
const doc = await getAuthenticatedGoogleDoc({
163+
const doc = await getGoogleSpreadsheet({
160164
credentialsId,
161165
spreadsheetId,
162-
workspaceId: "",
166+
workspaceId: undefined,
163167
});
168+
if (!doc) {
169+
notFound(res);
170+
return;
171+
}
164172
try {
165173
await doc.loadInfo();
166174
const sheet = doc.sheetsById[Number(sheetId)];

bun.lock

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@
8484
"emojilib": "3.0.10",
8585
"framer-motion": "11.1.7",
8686
"google-auth-library": "10.1.0",
87-
"google-spreadsheet": "4.1.4",
8887
"immer": "10.0.2",
8988
"ioredis": "5.4.1",
9089
"jsonwebtoken": "9.0.1",
@@ -509,7 +508,7 @@
509508
"@typebot.io/lib": "workspace:*",
510509
"@typebot.io/prisma": "workspace:*",
511510
"@typebot.io/zod": "workspace:*",
512-
"google-auth-library": "10.1.0",
511+
"google-spreadsheet": "4.1.4",
513512
"ky": "1.2.4",
514513
"qs": "6.11.2",
515514
},
@@ -5467,7 +5466,7 @@
54675466

54685467
"sade": ["[email protected]", "", { "dependencies": { "mri": "^1.1.0" } }, "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A=="],
54695468

5470-
"safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
5469+
"safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="],
54715470

54725471
"safe-regex-test": ["[email protected]", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "is-regex": "^1.2.1" } }, "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw=="],
54735472

@@ -6791,8 +6790,6 @@
67916790

67926791
"babel-plugin-macros/cosmiconfig": ["[email protected]", "", { "dependencies": { "@types/parse-json": "^4.0.0", "import-fresh": "^3.2.1", "parse-json": "^5.0.0", "path-type": "^4.0.0", "yaml": "^1.10.0" } }, "sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA=="],
67936792

6794-
"basic-auth/safe-buffer": ["[email protected]", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="],
6795-
67966793
"bl/buffer": ["[email protected]", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="],
67976794

67986795
"body-parser/bytes": ["[email protected]", "", {}, "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="],
@@ -6841,6 +6838,8 @@
68416838

68426839
"compress-commons/readable-stream": ["[email protected]", "", { "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", "process": "^0.11.10", "string_decoder": "^1.3.0" } }, "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg=="],
68436840

6841+
"content-disposition/safe-buffer": ["[email protected]", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
6842+
68446843
"crc32-stream/readable-stream": ["[email protected]", "", { "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", "events": "^3.3.0", "process": "^0.11.10", "string_decoder": "^1.3.0" } }, "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg=="],
68456844

68466845
"create-emotion/@emotion/cache": ["@emotion/[email protected]", "", { "dependencies": { "@emotion/sheet": "0.9.4", "@emotion/stylis": "0.8.5", "@emotion/utils": "0.11.3", "@emotion/weak-memoize": "0.2.5" } }, "sha512-fU2VtSVlHiF27empSbxi1O2JFdNWZO+2NFHfwO0pxgTep6Xa3uGb+3pVKfLww2l/IBGLNEZl5Xf/++A4wAYDYQ=="],
@@ -6863,6 +6862,8 @@
68636862

68646863
"dot-prop/type-fest": ["[email protected]", "", {}, "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA=="],
68656864

6865+
"ecdsa-sig-formatter/safe-buffer": ["[email protected]", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
6866+
68666867
"editorconfig/commander": ["[email protected]", "", {}, "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug=="],
68676868

68686869
"editorconfig/minimatch": ["[email protected]", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-0jWhJpD/MdhPXwPuiRkCbfYfSKp2qnn2eOc279qI7f+osl/l+prKSrvhg157zSYvx/1nmgn2NqdT6k2Z7zSH9w=="],
@@ -6905,6 +6906,8 @@
69056906

69066907
"express/qs": ["[email protected]", "", { "dependencies": { "side-channel": "^1.0.6" } }, "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg=="],
69076908

6909+
"express/safe-buffer": ["[email protected]", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
6910+
69086911
"express/setprototypeof": ["[email protected]", "", {}, "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="],
69096912

69106913
"express/statuses": ["[email protected]", "", {}, "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="],
@@ -7107,6 +7110,10 @@
71077110

71087111
"juice/commander": ["[email protected]", "", {}, "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA=="],
71097112

7113+
"jwa/safe-buffer": ["[email protected]", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
7114+
7115+
"jws/safe-buffer": ["[email protected]", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
7116+
71107117
"katex/commander": ["[email protected]", "", {}, "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww=="],
71117118

71127119
"lambda-local/commander": ["[email protected]", "", {}, "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug=="],
@@ -7349,6 +7356,8 @@
73497356

73507357
"public-ip/got": ["[email protected]", "", { "dependencies": { "@sindresorhus/is": "^5.2.0", "@szmarczak/http-timer": "^5.0.1", "cacheable-lookup": "^7.0.0", "cacheable-request": "^10.2.8", "decompress-response": "^6.0.0", "form-data-encoder": "^2.1.2", "get-stream": "^6.0.1", "http2-wrapper": "^2.1.10", "lowercase-keys": "^3.0.0", "p-cancelable": "^3.0.0", "responselike": "^3.0.0" } }, "sha512-mThBblvlAF1d4O5oqyvN+ZxLAYwIJK7bpMxgYqPD9okW0C3qm5FFn7k811QrcuEBwaogR3ngOFoCfs6mRv7teQ=="],
73517358

7359+
"randombytes/safe-buffer": ["[email protected]", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
7360+
73527361
"react-email/@babel/core": ["@babel/[email protected]", "", { "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.24.2", "@babel/generator": "^7.24.5", "@babel/helper-compilation-targets": "^7.23.6", "@babel/helper-module-transforms": "^7.24.5", "@babel/helpers": "^7.24.5", "@babel/parser": "^7.24.5", "@babel/template": "^7.24.0", "@babel/traverse": "^7.24.5", "@babel/types": "^7.24.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.2.3", "semver": "^6.3.1" } }, "sha512-tVQRucExLQ02Boi4vdPp49svNGcfL2GhdTCT9aldhXgCJVAI21EtRfBettiuLUwce/7r6bFdgs6JFkcdTiFttA=="],
73537362

73547363
"react-email/chalk": ["[email protected]", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="],
@@ -7493,6 +7502,8 @@
74937502

74947503
"stdin-discarder/bl": ["[email protected]", "", { "dependencies": { "buffer": "^6.0.3", "inherits": "^2.0.4", "readable-stream": "^3.4.0" } }, "sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ=="],
74957504

7505+
"string_decoder/safe-buffer": ["[email protected]", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
7506+
74967507
"strip-literal/js-tokens": ["[email protected]", "", {}, "sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ=="],
74977508

74987509
"style-to-js/style-to-object": ["[email protected]", "", { "dependencies": { "inline-style-parser": "0.2.4" } }, "sha512-G4qppLgKu/k6FwRpHiGiKPaPTFcG3g4wNVX/Qsfu+RqQM30E7Tyu/TEgxcL9PNLF5pdRLwQdE3YKKf+KF2Dzlw=="],
@@ -7527,6 +7538,8 @@
75277538

75287539
"tsup/esbuild": ["[email protected]", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.25.6", "@esbuild/android-arm": "0.25.6", "@esbuild/android-arm64": "0.25.6", "@esbuild/android-x64": "0.25.6", "@esbuild/darwin-arm64": "0.25.6", "@esbuild/darwin-x64": "0.25.6", "@esbuild/freebsd-arm64": "0.25.6", "@esbuild/freebsd-x64": "0.25.6", "@esbuild/linux-arm": "0.25.6", "@esbuild/linux-arm64": "0.25.6", "@esbuild/linux-ia32": "0.25.6", "@esbuild/linux-loong64": "0.25.6", "@esbuild/linux-mips64el": "0.25.6", "@esbuild/linux-ppc64": "0.25.6", "@esbuild/linux-riscv64": "0.25.6", "@esbuild/linux-s390x": "0.25.6", "@esbuild/linux-x64": "0.25.6", "@esbuild/netbsd-arm64": "0.25.6", "@esbuild/netbsd-x64": "0.25.6", "@esbuild/openbsd-arm64": "0.25.6", "@esbuild/openbsd-x64": "0.25.6", "@esbuild/openharmony-arm64": "0.25.6", "@esbuild/sunos-x64": "0.25.6", "@esbuild/win32-arm64": "0.25.6", "@esbuild/win32-ia32": "0.25.6", "@esbuild/win32-x64": "0.25.6" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-GVuzuUwtdsghE3ocJ9Bs8PNoF13HNQ5TXbEi2AhvVb8xU1Iwt9Fos9FEamfoee+u/TOsn7GUWc04lz46n2bbTg=="],
75297540

7541+
"tunnel-agent/safe-buffer": ["[email protected]", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
7542+
75307543
"unbzip2-stream/buffer": ["[email protected]", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="],
75317544

75327545
"unctx/unplugin": ["[email protected]", "", { "dependencies": { "acorn": "^8.14.1", "picomatch": "^4.0.2", "webpack-virtual-modules": "^0.6.2" } }, "sha512-RyWSb5AHmGtjjNQ6gIlA67sHOsWpsbWpwDokLwTcejVdOjEkJZh7QKu14J00gDDVSh8kGH4KYC/TNBceXFZhtw=="],
@@ -8435,7 +8448,7 @@
84358448

84368449
"jsonwebtoken/jws/jwa": ["[email protected]", "", { "dependencies": { "buffer-equal-constant-time": "^1.0.1", "ecdsa-sig-formatter": "1.0.11", "safe-buffer": "^5.0.1" } }, "sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw=="],
84378450

8438-
"lazystream/readable-stream/safe-buffer": ["safe-buffer@5.1.2", "", {}, "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="],
8451+
"jsonwebtoken/jws/safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="],
84398452

84408453
"lazystream/readable-stream/string_decoder": ["[email protected]", "", { "dependencies": { "safe-buffer": "~5.1.0" } }, "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="],
84418454

packages/bot-engine/src/blocks/integrations/googleSheets/getRow.ts

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type { GoogleSheetsGetOptions } from "@typebot.io/blocks-integrations/googleSheets/schema";
22
import type { SessionState } from "@typebot.io/chat-session/schemas";
3+
import { getGoogleSpreadsheet } from "@typebot.io/credentials/getGoogleSpreadsheet";
34
import { parseUnknownError } from "@typebot.io/lib/parseUnknownError";
45
import { byId, isDefined, isNotEmpty } from "@typebot.io/lib/utils";
56
import type { LogInSession } from "@typebot.io/logs/schemas";
@@ -8,7 +9,6 @@ import { deepParseVariables } from "@typebot.io/variables/deepParseVariables";
89
import type { VariableWithValue } from "@typebot.io/variables/schemas";
910
import type { ExecuteIntegrationResponse } from "../../../types";
1011
import { updateVariablesInSession } from "../../../updateVariablesInSession";
11-
import { getAuthenticatedGoogleDoc } from "./helpers/getAuthenticatedGoogleDoc";
1212
import { matchFilter } from "./helpers/matchFilter";
1313

1414
export const getRow = async (
@@ -45,12 +45,24 @@ export const getRow = async (
4545
],
4646
};
4747

48-
const doc = await getAuthenticatedGoogleDoc({
48+
const doc = await getGoogleSpreadsheet({
4949
credentialsId: options.credentialsId,
5050
spreadsheetId: options.spreadsheetId,
5151
workspaceId: state.workspaceId,
5252
});
5353

54+
if (!doc)
55+
return {
56+
outgoingEdgeId,
57+
logs: [
58+
{
59+
status: "error",
60+
description: "Couldn't find credentials in database",
61+
context: "While getting spreadsheet row",
62+
},
63+
],
64+
};
65+
5466
try {
5567
await doc.loadInfo();
5668
const sheet = doc.sheetsById[Number(sheetId)];

packages/bot-engine/src/blocks/integrations/googleSheets/helpers/getAuthenticatedGoogleDoc.ts

Lines changed: 0 additions & 31 deletions
This file was deleted.

0 commit comments

Comments
 (0)