andrew-bierman / PackRat

PackRat is a versatile adventure planner tailored for outdoor enthusiasts. It simplifies the process of organizing trips from a simple day hike to cross-country journeys.
https://packrat.world/
Other
15 stars 33 forks source link

Feat/drizzle-integration-with-hono #508

Closed andrew-bierman closed 1 month ago

andrew-bierman commented 5 months ago

WIP : 🚧 ( Services and related Controllers )

cloudflare-pages[bot] commented 5 months ago

Deploying packrat with  Cloudflare Pages  Cloudflare Pages

Latest commit: b519dcf
Status: ✅  Deploy successful!
Preview URL: https://d0298a50.packrat.pages.dev
Branch Preview URL: https://feat-drizzle-integration-wit.packrat.pages.dev

View logs

andrew-bierman commented 5 months ago

One idea i just had is since we are moving to sqlite, we will probably need to build out seeders, since everyone will be running local sqlite. But that is going to be tedious to manage the changing schemas. I think we should use drizzle zod, and then bring something like this in and create our own factory function or helpers on these method classes. https://github.com/anatine/zod-plugins/tree/main/packages/zod-mock

shahzaib-manzoor commented 5 months ago

drizzle/methods/Pack.ts in progress

raghavyuva commented 5 months ago

drizzle/methods/Pack.ts in progress

Already working on that, kindly communicate before working

shahzaib-manzoor commented 5 months ago

drizzle/methods/Pack.ts in progress

Already working on that, kindly communicate before working

Can you please assign me a model ? As @andrew-bierman asked to comment before starting work on a model

raghavyuva commented 5 months ago

drizzle/methods/Pack.ts in progress

Already working on that, kindly communicate before working

Can you please assign me a model ? As @andrew-bierman asked to comment before starting work on a model

Let's connect over discord

andrew-bierman commented 5 months ago

We should add the db to trpc context like this, might simplify some of these classes we are implementing? https://github.com/timothymiller/t4-app/blob/master/packages/api/src/context.ts

raghavyuva commented 5 months ago

We should add the db to trpc context like this, might simplify some of these classes we are implementing? https://github.com/timothymiller/t4-app/blob/master/packages/api/src/context.ts

While I understand the current approach, I'd like to propose an alternative that might be more efficient. What if we consider creating a base class for all our classes? This way, we can initialize the database instance just once and use it universally. This approach could streamline our process significantly. Additionally, it might be beneficial to look into optimizing our existing code, particularly functions like findMany and findOne. This could enhance our overall code efficiency and performance. What are your thoughts on this suggestion?

andrew-bierman commented 5 months ago

Might need to clean up some of the older prisma logic, current error on start up:

wrangler dev src/index.ts
 ⛅️ wrangler 3.22.1
-------------------
▲ [WARNING] Enabling Node.js compatibility mode for built-ins and globals. This is experimental and has serious tradeoffs. Please see https://github.com/ionic-team/rollup-plugin-node-polyfills/ for more details.

Your worker has access to the following bindings:
- D1 Databases:
  - packrat_db: packrat_db (2374ksjbfhsdf93lwsad09234)
[wrangler:inf] Ready on http://localhost:8787
✘ [ERROR] Could not resolve "../../prisma/methods"

    src/controllers/template/editTemplate.ts:9:25:
      9 │ import { Template } from '../../prisma/methods';
        ╵                          ~~~~~~~~~~~~~~~~~~~~~~

✘ [ERROR] Could not resolve "../../prisma/methods"

    src/controllers/template/getTemplateById.ts:7:25:
      7 │ import { Template } from '../../prisma/methods';
        ╵                          ~~~~~~~~~~~~~~~~~~~~~~

✘ [ERROR] Could not resolve "../../prisma/methods"

    src/controllers/template/getTemplates.ts:1:25:
      1 │ import { Template } from '../../prisma/methods';
        ╵                          ~~~~~~~~~~~~~~~~~~~~~~

✘ [ERROR] Could not resolve "../../prisma/methods"

    src/controllers/trip/editTrip.ts:7:21:
      7 │ import { Trip } from '../../prisma/methods';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~

✘ [ERROR] Could not resolve "../../prisma/methods"

    src/controllers/trip/getPublicTrips.ts:7:21:
      7 │ import { Trip } from '../../prisma/methods';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~

✘ [ERROR] Could not resolve "../../prisma/methods"

    src/controllers/trip/getTrip.ts:7:21:
      7 │ import { Trip } from '../../prisma/methods';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~

✘ [ERROR] Could not resolve "../../prisma/methods"

    src/controllers/user/userSignUp.ts:5:21:
      5 │ import { User } from '../../prisma/methods';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~

✘ [ERROR] Could not resolve "../../prisma/methods"

    src/services/trip/addTripService.ts:2:21:
      2 │ import { Trip } from '../../prisma/methods';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~

✘ [ERROR] Could not resolve "../../prisma/methods"

    src/services/trip/getPublicTripService.ts:4:27:
      4 │ import { Pack, User } from '../../prisma/methods';
        ╵                            ~~~~~~~~~~~~~~~~~~~~~~

✘ [ERROR] Could not resolve "../../prisma/methods"

    src/services/trip/getTripByIdService.ts:2:21:
      2 │ import { Trip } from '../../prisma/methods';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~

✘ [ERROR] Could not resolve "../../prisma/methods"

    src/services/trip/getTripsService.ts:2:21:
      2 │ import { Pack } from '../../prisma/methods';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~

✘ [ERROR] Could not resolve "../prisma"

    src/trpc/context.ts:2:32:
      2 │ import { getPrismaClient } from '../prisma';
        ╵                                 ~~~~~~~~~~~

▲ [WARNING] Use "src/drizzle/methods/pack.ts" instead of "src/drizzle/methods/Pack.ts" to avoid issues with case-sensitive file systems [different-path-case]

    src/services/favorite/addToFavoriteService.ts:5:21:
      5 │ import { Pack } from '../../drizzle/methods/Pack';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

▲ [WARNING] Use "src/drizzle/methods/pack.ts" instead of "src/drizzle/methods/Pack.ts" to avoid issues with case-sensitive file systems [different-path-case]

    src/services/favorite/getFavoritePacksByUserService.ts:1:21:
      1 │ import { Pack } from '../../drizzle/methods/Pack';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

▲ [WARNING] Use "src/drizzle/methods/pack.ts" instead of "src/drizzle/methods/Pack.ts" to avoid issues with case-sensitive file systems [different-path-case]

    src/services/item/addGlobalItemToPackService.ts:7:21:
      7 │ import { Pack } from '../../drizzle/methods/Pack';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

▲ [WARNING] Use "src/drizzle/methods/pack.ts" instead of "src/drizzle/methods/Pack.ts" to avoid issues with case-sensitive file systems [different-path-case]

    src/services/item/addItemService.ts:7:21:
      7 │ import { Pack } from '../../drizzle/methods/Pack';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

▲ [WARNING] Use "src/drizzle/methods/pack.ts" instead of "src/drizzle/methods/Pack.ts" to avoid issues with case-sensitive file systems [different-path-case]

    src/services/item/deleteItemService.ts:5:21:
      5 │ import { Pack } from '../../drizzle/methods/Pack';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

▲ [WARNING] Use "src/drizzle/methods/pack.ts" instead of "src/drizzle/methods/Pack.ts" to avoid issues with case-sensitive file systems [different-path-case]

    src/services/pack/addPackService.ts:9:21:
      9 │ import { Pack } from "../../drizzle/methods/Pack";
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

▲ [WARNING] Use "src/drizzle/methods/pack.ts" instead of "src/drizzle/methods/Pack.ts" to avoid issues with case-sensitive file systems [different-path-case]

    src/services/pack/deletePackService.ts:2:21:
      2 │ import { Pack } from '../../drizzle/methods/Pack';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

▲ [WARNING] Use "src/drizzle/methods/pack.ts" instead of "src/drizzle/methods/Pack.ts" to avoid issues with case-sensitive file systems [different-path-case]

    src/services/pack/duplicatePublicPackService.ts:2:21:
      2 │ import { Pack } from '../../drizzle/methods/Pack';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

▲ [WARNING] Use "src/drizzle/methods/pack.ts" instead of "src/drizzle/methods/Pack.ts" to avoid issues with case-sensitive file systems [different-path-case]

    src/services/pack/editPackService.ts:1:21:
      1 │ import { Pack } from '../../drizzle/methods/Pack';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

▲ [WARNING] Use "src/drizzle/methods/pack.ts" instead of "src/drizzle/methods/Pack.ts" to avoid issues with case-sensitive file systems [different-path-case]

    src/services/pack/getPackByIdService.ts:2:21:
      2 │ import { Pack } from '../../drizzle/methods/Pack';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

▲ [WARNING] Use "src/drizzle/methods/pack.ts" instead of "src/drizzle/methods/Pack.ts" to avoid issues with case-sensitive file systems [different-path-case]

    src/services/pack/getPackService.ts:1:21:
      1 │ import { Pack } from '../../drizzle/methods/Pack';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

▲ [WARNING] Use "src/drizzle/methods/pack.ts" instead of "src/drizzle/methods/Pack.ts" to avoid issues with case-sensitive file systems [different-path-case]

    src/services/pack/getPublicPacksService.ts:1:21:
      1 │ import { Pack } from '../../drizzle/methods/Pack';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

▲ [WARNING] Use "src/drizzle/methods/pack.ts" instead of "src/drizzle/methods/Pack.ts" to avoid issues with case-sensitive file systems [different-path-case]

    src/services/pack/scorePackService.ts:3:21:
      3 │ import { Pack } from '../../drizzle/methods/Pack';
        ╵                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~

╭──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ [b] open a browser, [d] open Devtools, [l] turn off local mode, [c] clear console, [x] to exit                                   │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

✘ [ERROR] Failed to build
andrew-bierman commented 5 months ago

I like the idea of having a main db class, then extending that for these utility classes for each table.

I also wonder if most of these functions could just be statics so we didn't have to create instances to use them.

render[bot] commented 5 months ago

Your Render PR Server URL is https://packrat-dev-pr-508.onrender.com.

Follow its progress at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 5 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 5 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 5 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 5 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 5 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 5 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 4 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 4 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 4 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 4 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

andrew-bierman commented 4 months ago

I noticed create pack in trpc panel threw a strange error about .map on aliasIds

andrew-bierman commented 4 months ago

Regex validation failing for new uuid since they are set up for mongo ids, example tested on getPacks query in trpc playground

andrew-bierman commented 4 months ago

getPacks query error. i think issue is in filter logic somewhere

{ [TRPCClientError: Packs cannot be found: D1_TYPE_ERROR: Type 'object' not supported for value '[object Object]'] [cause]: undefined, meta: {
    response: Response [Response] {}
  }, shape: {
    message: 'Packs cannot be found: D1_TYPE_ERROR: Type \'object\' not supported for value \'[object Object]\'',
    code: -32603,
    data: {
      code: 'INTERNAL_SERVER_ERROR',
      httpStatus: 500,
      stack: 'Error: Packs cannot be found: D1_TYPE_ERROR: Type \'object\' not supported for value \'[object Object]\'\n    at getPacksService (file:///Users/andrewbierman/Dropbox/AppAcademy/PackRat/PackRat/server/.wrangler/tmp/dev-i0IeKK/index.js:243293:11)\n    at async file:///Users/andrewbierman/Dropbox/AppAcademy/PackRat/PackRat/server/.wrangler/tmp/dev-i0IeKK/index.js:243541:19\n    at async resolveMiddleware (file:///Users/andrewbierman/Dropbox/AppAcademy/PackRat/PackRat/server/.wrangler/tmp/dev-i0IeKK/index.js:235403:22)\n    at async callRecursive (file:///Users/andrewbierman/Dropbox/AppAcademy/PackRat/PackRat/server/.wrangler/tmp/dev-i0IeKK/index.js:235430:25)\n    at async callRecursive (file:///Users/andrewbierman/Dropbox/AppAcademy/PackRat/PackRat/server/.wrangler/tmp/dev-i0IeKK/index.js:235430:25)\n    at async resolve2 (file:///Users/andrewbierman/Dropbox/AppAcademy/PackRat/PackRat/server/.wrangler/tmp/dev-i0IeKK/index.js:235459:20)\n    at async inputToProcedureCall (file:///Users/andrewbierman/Dropbox/AppAcademy/PackRat/PackRat/server/.wrangler/tmp/dev-i0IeKK/index.js:245536:18)\n    at async Promise.all (index 0)\n    at async resolveHTTPResponse (file:///Users/andrewbierman/Dropbox/AppAcademy/PackRat/PackRat/server/.wrangler/tmp/dev-i0IeKK/index.js:245656:33)',
      path: 'getPacks'
    }
  }, data: {
    code: 'INTERNAL_SERVER_ERROR',
    httpStatus: 500,
    stack: 'Error: Packs cannot be found: D1_TYPE_ERROR: Type \'object\' not supported for value \'[object Object]\'\n    at getPacksService (file:///Users/andrewbierman/Dropbox/AppAcademy/PackRat/PackRat/server/.wrangler/tmp/dev-i0IeKK/index.js:243293:11)\n    at async file:///Users/andrewbierman/Dropbox/AppAcademy/PackRat/PackRat/server/.wrangler/tmp/dev-i0IeKK/index.js:243541:19\n    at async resolveMiddleware (file:///Users/andrewbierman/Dropbox/AppAcademy/PackRat/PackRat/server/.wrangler/tmp/dev-i0IeKK/index.js:235403:22)\n    at async callRecursive (file:///Users/andrewbierman/Dropbox/AppAcademy/PackRat/PackRat/server/.wrangler/tmp/dev-i0IeKK/index.js:235430:25)\n    at async callRecursive (file:///Users/andrewbierman/Dropbox/AppAcademy/PackRat/PackRat/server/.wrangler/tmp/dev-i0IeKK/index.js:235430:25)\n    at async resolve2 (file:///Users/andrewbierman/Dropbox/AppAcademy/PackRat/PackRat/server/.wrangler/tmp/dev-i0IeKK/index.js:235459:20)\n    at async inputToProcedureCall (file:///Users/andrewbierman/Dropbox/AppAcademy/PackRat/PackRat/server/.wrangler/tmp/dev-i0IeKK/index.js:245536:18)\n    at async Promise.all (index 0)\n    at async resolveHTTPResponse (file:///Users/andrewbierman/Dropbox/AppAcademy/PackRat/PackRat/server/.wrangler/tmp/dev-i0IeKK/index.js:245656:33)',
    path: 'getPacks'
  }, name: 'TRPCClientError' }
andrew-bierman commented 4 months ago

Looks like we get similar error messages for the same types of queries with packs and trips, so solving one of these should help us implement fix in the other.

render[bot] commented 4 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 4 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 4 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 4 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 4 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 4 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 4 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 4 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 4 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

HarshVirani914 commented 4 months ago

@sheharyarahmad842 Can you please share server setup and running instructions? I want to apply test cases with drizzle changes, but I'm facing multiple errors while running the server.

Screenshot 2024-01-16 at 9 49 54 PM Screenshot 2024-01-16 at 9 58 07 PM

Updates: resolve it with reference https://github.com/withastro/astro/issues/5583

HarshVirani914 commented 4 months ago

@andrew-bierman @sheharyarahmad842 I would like to propose a small change I have seen some places in code where we are using Pascal case names for file imports with camelCase names, which works usually but can cause issues with some distros and also result in warnings in some cases. So I would like to suggest making naming conventions consistent.

Screenshot 2024-01-16 at 10 36 39 PM Screenshot 2024-01-16 at 10 PM
render[bot] commented 3 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 3 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 3 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 3 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 3 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 3 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 3 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 3 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 3 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 3 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 3 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 3 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 3 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.

render[bot] commented 3 months ago

A deploy for your Render PR Server at https://packrat-dev-pr-508.onrender.com just failed.

View details on your dashboard at https://dashboard.render.com/web/srv-cm5g9uud3nmc73frvnjg.