diff --git a/templates/devx-experimental/src/my-stack/create-todo.ts b/templates/devx-experimental/src/create-todo.ts similarity index 64% rename from templates/devx-experimental/src/my-stack/create-todo.ts rename to templates/devx-experimental/src/create-todo.ts index ca5fa08..c9ba166 100644 --- a/templates/devx-experimental/src/my-stack/create-todo.ts +++ b/templates/devx-experimental/src/create-todo.ts @@ -1,13 +1,11 @@ -import { Function } from "fl-exp"; -import { $AWS } from "functionless"; +import { LambdaFunction } from "fl-exp"; import * as uuid from "uuid"; import { AppTable } from "./table"; -export default Function(async (event: { message: string }) => { +export default LambdaFunction(async (event: { message: string }) => { const id = uuid.v4(); - await $AWS.DynamoDB.PutItem({ - Table: AppTable, + await AppTable.put({ Item: { pk: { S: "todo", diff --git a/templates/devx-experimental/src/delete-todo.ts b/templates/devx-experimental/src/delete-todo.ts new file mode 100644 index 0000000..2f6cdde --- /dev/null +++ b/templates/devx-experimental/src/delete-todo.ts @@ -0,0 +1,17 @@ +import { LambdaFunction } from "fl-exp"; +import { AppTable } from "./table"; + +export default LambdaFunction(async (event: { id: string }) => { + await AppTable.delete({ + Key: { + pk: { + S: "todo", + }, + sk: { + S: event.id, + }, + }, + }); + + return "DELETED"; +}); diff --git a/templates/devx-experimental/src/my-stack/list-todos.ts b/templates/devx-experimental/src/list-todos.ts similarity index 71% rename from templates/devx-experimental/src/my-stack/list-todos.ts rename to templates/devx-experimental/src/list-todos.ts index 443436f..56bbe20 100644 --- a/templates/devx-experimental/src/my-stack/list-todos.ts +++ b/templates/devx-experimental/src/list-todos.ts @@ -1,11 +1,9 @@ import { Function } from "fl-exp"; -import { $AWS } from "functionless"; import { AppTable } from "./table"; -export default Function(async (event: {}) => { - const response = await $AWS.DynamoDB.Query({ - Table: AppTable, +export default LambdaFunction(async (event: {}) => { + const response = AppTable.query({ KeyConditionExpression: "#pk = :pk", ExpressionAttributeNames: { "#pk": "pk", @@ -23,4 +21,4 @@ export default Function(async (event: {}) => { message: item.message.S, }; }); -}); \ No newline at end of file +}); diff --git a/templates/devx-experimental/src/my-stack/_stack.ts b/templates/devx-experimental/src/my-stack/_stack.ts deleted file mode 100644 index ea9c87f..0000000 --- a/templates/devx-experimental/src/my-stack/_stack.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { Stack } from "fl-exp"; - -export default Stack(); diff --git a/templates/devx-experimental/src/my-stack/delete-todo.ts b/templates/devx-experimental/src/my-stack/delete-todo.ts deleted file mode 100644 index 12d1b39..0000000 --- a/templates/devx-experimental/src/my-stack/delete-todo.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Function } from "fl-exp"; -import { $AWS } from "functionless"; - -import { AppTable } from "./table"; - -export default Function(async (event: { id: string }) => { - await $AWS.DynamoDB.DeleteItem({ - Table: AppTable, - Key: { - pk: { - S: "todo", - }, - sk: { - S: event.id, - }, - }, - }); - - return "DELETED"; -}); diff --git a/templates/devx-experimental/src/my-stack/table.ts b/templates/devx-experimental/src/table.ts similarity index 65% rename from templates/devx-experimental/src/my-stack/table.ts rename to templates/devx-experimental/src/table.ts index a38bf60..4aee2aa 100644 --- a/templates/devx-experimental/src/my-stack/table.ts +++ b/templates/devx-experimental/src/table.ts @@ -1,4 +1,3 @@ -import { AttributeType, BillingMode } from "aws-cdk-lib/aws-dynamodb"; import { Table } from "fl-exp"; interface TableItem { @@ -15,13 +14,12 @@ interface Todo extends TableItem<"todo"> { export const AppTable = Table({ partitionKey: { name: "pk", - type: AttributeType.STRING, + type: "S", }, sortKey: { name: "sk", - type: AttributeType.STRING, + type: "S", }, - billingMode: BillingMode.PAY_PER_REQUEST, }); export default AppTable;