Skip to content

Commit

Permalink
Add link list
Browse files Browse the repository at this point in the history
  • Loading branch information
nickymarino committed May 18, 2023
1 parent e80548e commit e8a5faf
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 6 deletions.
1 change: 1 addition & 0 deletions packages/core/src/link.ts
Expand Up @@ -70,4 +70,5 @@ export async function get(uid: string) {

export async function list() {
const result = await LinkEntity.query.byUid({}).go();
return result.data;
}
11 changes: 11 additions & 0 deletions packages/functions/src/link/list.ts
@@ -0,0 +1,11 @@
import { Link } from "@cow-link/core/link";
import { ApiHandler, usePathParam } from "sst/node/api";

export const handler = ApiHandler(async (_evt) => {
const result = await Link.list();
return {
body: {
links: result,
},
};
});
27 changes: 21 additions & 6 deletions stacks/API.ts
@@ -1,24 +1,39 @@
import { StackContext, Api, use } from "sst/constructs";
import { StackContext, Api, use, FunctionNameProps } from "sst/constructs";
import { Database } from "./Database";

function nameFor(shortName: string) {
const nameGenerator = (props: FunctionNameProps): string => {
return `${props.stack.stackName}-${shortName}`;
};
return nameGenerator;
}

export function API({ stack }: StackContext) {
const { table } = use(Database);

const api = new Api(stack, "api", {
defaults: {
function: {
bind: [table],
},
},
routes: {
"GET /": "packages/functions/src/lambda.handler",
"GET /link/{id}": {
function: {
functionName: `${stack.stackName}-LinkGet`,
functionName: nameFor("LinkGet"),
handler: "packages/functions/src/link/get.handler",
bind: [table],
},
},
"POST /link": {
function: {
functionName: `${stack.stackName}-LinkCreate`,
functionName: nameFor("LinkCreate"),
handler: "packages/functions/src/link/create.handler",
bind: [table],
},
},
"GET /links": {
function: {
functionName: nameFor("LinkList"),
handler: "packages/functions/src/link/list.handler",
},
},
},
Expand Down

0 comments on commit e8a5faf

Please sign in to comment.