diff --git a/packages/api/src/functions/refreshMetadata/handler.ts b/packages/api/src/functions/refreshMetadata/handler.ts index 14b7eda2..3cf5fddc 100644 --- a/packages/api/src/functions/refreshMetadata/handler.ts +++ b/packages/api/src/functions/refreshMetadata/handler.ts @@ -3,11 +3,14 @@ import { getAwsLambda, withMiddy } from "@libs/lambda" import { getNormalizedHeader } from "@libs/utils" import { STAGE } from "../../constants" import schema from "./schema" +import { InvokeCommand } from "@aws-sdk/client-lambda" const lambda: ValidatedEventAPIGatewayProxyEvent = async ( event ) => { - await getAwsLambda().invoke({ + const client = getAwsLambda() + + const command = new InvokeCommand({ InvocationType: "Event", FunctionName: `oboku-api-${STAGE}-refreshMetadataLongProcess`, Payload: JSON.stringify({ @@ -19,6 +22,8 @@ const lambda: ValidatedEventAPIGatewayProxyEvent = async ( }) }) + await client.send(command) + return { statusCode: 202, body: JSON.stringify({}) diff --git a/packages/api/src/functions/refreshMetadataLongProcess/handler.ts b/packages/api/src/functions/refreshMetadataLongProcess/handler.ts index ee16e907..bac60723 100644 --- a/packages/api/src/functions/refreshMetadataLongProcess/handler.ts +++ b/packages/api/src/functions/refreshMetadataLongProcess/handler.ts @@ -113,5 +113,6 @@ const lambda: ValidatedEventAPIGatewayProxyEvent = async ( } export const main = withMiddy(lambda, { - withCors: false + withCors: false, + withJsonBodyParser: false }) diff --git a/packages/api/src/functions/syncDataSource/handler.ts b/packages/api/src/functions/syncDataSource/handler.ts index aedf613d..ee2b0753 100644 --- a/packages/api/src/functions/syncDataSource/handler.ts +++ b/packages/api/src/functions/syncDataSource/handler.ts @@ -3,11 +3,13 @@ import { getAwsLambda, withMiddy } from "@libs/lambda" import { getNormalizedHeader } from "@libs/utils" import { STAGE } from "../../constants" import schema from "./schema" +import { InvokeCommand } from "@aws-sdk/client-lambda" const lambda: ValidatedEventAPIGatewayProxyEvent = async ( event ) => { - await getAwsLambda().invoke({ + const lambda = getAwsLambda() + const command = new InvokeCommand({ InvocationType: "Event", FunctionName: `oboku-api-${STAGE}-syncDataSourceLongProcess`, Payload: JSON.stringify({ @@ -19,6 +21,8 @@ const lambda: ValidatedEventAPIGatewayProxyEvent = async ( }) }) + await lambda.send(command) + return { statusCode: 202, body: JSON.stringify({}) diff --git a/packages/api/src/functions/syncDataSourceLongProcess/handler.ts b/packages/api/src/functions/syncDataSourceLongProcess/handler.ts index 5efdd5a1..1c0e4a22 100644 --- a/packages/api/src/functions/syncDataSourceLongProcess/handler.ts +++ b/packages/api/src/functions/syncDataSourceLongProcess/handler.ts @@ -90,5 +90,6 @@ const lambda: ValidatedEventAPIGatewayProxyEvent = async ( } export const main = withMiddy(lambda, { - withCors: false + withCors: false, + withJsonBodyParser: false }) diff --git a/packages/api/src/libs/lambda.ts b/packages/api/src/libs/lambda.ts index e7226604..1967ba08 100644 --- a/packages/api/src/libs/lambda.ts +++ b/packages/api/src/libs/lambda.ts @@ -7,7 +7,7 @@ import cors from "@middy/http-cors" import { OFFLINE } from "../constants" import { transpileSchema } from "@middy/validator/transpile" import validator from "@middy/validator" -import { Lambda } from "@aws-sdk/client-lambda" +import { LambdaClient } from "@aws-sdk/client-lambda" export const withMiddy = ( handler: any, @@ -103,7 +103,7 @@ export const withMiddy = ( } export const getAwsLambda = () => - new Lambda({ + new LambdaClient({ region: "us-east-1", ...(OFFLINE && { endpoint: `http://localhost:3002` diff --git a/packages/web/src/collections/databaseHelpers.ts b/packages/web/src/collections/databaseHelpers.ts index db937425..a35817be 100644 --- a/packages/web/src/collections/databaseHelpers.ts +++ b/packages/web/src/collections/databaseHelpers.ts @@ -1,11 +1,6 @@ -import { CollectionDocType, directives } from "@oboku/shared" -import { useLocalSettings } from "../settings/states" -import { useForeverQuery } from "reactjrx" -import { latestDatabase$ } from "../rxdb/useCreateDatabase" -import { map, switchMap } from "rxjs" +import { CollectionDocType } from "@oboku/shared" import { keyBy } from "lodash" import { Database } from "../rxdb" -import { useVisibleBookIds } from "../books/states" export type Collection = CollectionDocType diff --git a/packages/web/src/queries/client.ts b/packages/web/src/queries/client.ts index 94df1fee..9c2818a5 100644 --- a/packages/web/src/queries/client.ts +++ b/packages/web/src/queries/client.ts @@ -11,7 +11,13 @@ export const queryClient = new QueryClient({ * rxdb change with middleware. However since it's harder to maintain we just don't * use cache by default. */ - gcTime: 0 + gcTime: 0, + /** + * @important + * offline PWA. + * Don't forget to set it back to default when making online queries + */ + networkMode: "always" } } })