diff --git a/README.md b/README.md index 81e06fa2ae..c642e60422 100644 --- a/README.md +++ b/README.md @@ -34,46 +34,4 @@ We aim to provide a fully tested API for our peace of mind, this is accomplished Since this will only support an API, we redirect the requests to root to the /api folder. We also added a redirect for future-proofing API versioning when we might need it, without having to resort to dirty hacks like a v1/v2 folders with lots of duplicated code, instead we redirect /api/v*/:rest to /api/:rest?version=* -The priority is the booking-related API routes so people can build their own booking flow, then event type management routes, then availability management routes etc -How to add a new model or endpoint - -Basically there's three places of the codebase you need to think about for each feature. - -/pages/api/ - -- This is the most important one, and where your endpoint will live. You will leverage nextjs dynamic routes and expose one file for each endpoint you want to support ideally. - -## How the codebase is organized. - -## The example resource -model- and it's endpoints - -### `pages/api/endpoint/` - -GET pages/api/endpoint/index.ts - Read All of your resource -POST pages/api/endpoint/new.ts - Create new resource - -### `pages/api/endpoint/[id]/` - -GET pages/api/endpoint/[id]/index.ts - Read All of your resource -PATCH pages/api/endpoint/[id]/edit.ts - Create new resource -DELETE pages/api/endpoint/[id]/delete.ts - Create new resource - -## `/tests/` - -This is where all your endpoint's tests live, we mock prisma calls. We aim for at least 50% global coverage. Test each of your endpoints. - -### `/tests/endpoint/` - -/tests/endpoint/resource.index.test.ts - Test for your pages/api/endpoint/index.ts file -tests/endpoint/resource.new.test.ts - Create new resource - -### `/tests/endpoint/[id]/` - -`/tests/endpoint/[id]/resource.index.test.ts` - Read All of your resource -`/tests/endpoint/[id]/resource.edit.test.ts` - Create new resource -`/tests/endpoint/[id]/resource.delete.test.ts` - Create new resource - -## `/lib/validations/yourEndpoint.ts` - -- This is where our model validations, live, we try to make a 1:1 for db models, and also extract out any re-usable code into the /lib/validations/shared/ sub-folder. diff --git a/templates/README.md b/templates/README.md new file mode 100644 index 0000000000..c44fe4ef59 --- /dev/null +++ b/templates/README.md @@ -0,0 +1,41 @@ +# How to add a new model or endpoint + +Basically there's three places of the codebase you need to think about for each feature. + +/pages/api/ + +- This is the most important one, and where your endpoint will live. You will leverage nextjs dynamic routes and expose one file for each endpoint you want to support ideally. + +## How the codebase is organized. + +## The example resource -model- and it's endpoints + +### `pages/api/endpoint/` + +GET pages/api/endpoint/index.ts - Read All of your resource +POST pages/api/endpoint/new.ts - Create new resource + +### `pages/api/endpoint/[id]/` + +GET pages/api/endpoint/[id]/index.ts - Read All of your resource +PATCH pages/api/endpoint/[id]/edit.ts - Create new resource +DELETE pages/api/endpoint/[id]/delete.ts - Create new resource + +## `/tests/` + +This is where all your endpoint's tests live, we mock prisma calls. We aim for at least 50% global coverage. Test each of your endpoints. + +### `/tests/endpoint/` + +/tests/endpoint/resource.index.test.ts - Test for your pages/api/endpoint/index.ts file +tests/endpoint/resource.new.test.ts - Create new resource + +### `/tests/endpoint/[id]/` + +`/tests/endpoint/[id]/resource.index.test.ts` - Read All of your resource +`/tests/endpoint/[id]/resource.edit.test.ts` - Create new resource +`/tests/endpoint/[id]/resource.delete.test.ts` - Create new resource + +## `/lib/validations/yourEndpoint.ts` + +- This is where our model validations, live, we try to make a 1:1 for db models, and also extract out any re-usable code into the /lib/validations/shared/ sub-folder.