diff --git a/orm/typedsql/prisma/sql/filterTrackingEvents.sql b/orm/typedsql/prisma/sql/filterTrackingEvents.sql new file mode 100644 index 000000000000..05e645e7a07f --- /dev/null +++ b/orm/typedsql/prisma/sql/filterTrackingEvents.sql @@ -0,0 +1,7 @@ +-- @param {String} $1:types +-- @param {String} $2:variants +SELECT te."id", te."type", te."variant" +FROM "TrackingEvent" te +WHERE + ($1 IS NULL OR te."type" IN (SELECT value FROM json_each($1))) + AND ($2 IS NULL OR te."variant" IN (SELECT value FROM json_each($2))) \ No newline at end of file diff --git a/orm/typedsql/prisma/sql/getTrackingEvents.sql b/orm/typedsql/prisma/sql/getTrackingEvents.sql new file mode 100644 index 000000000000..d13fb0fb72b6 --- /dev/null +++ b/orm/typedsql/prisma/sql/getTrackingEvents.sql @@ -0,0 +1,7 @@ +SELECT + id, + type, + variant +FROM "TrackingEvent" +LIMIT +:limit ; \ No newline at end of file diff --git a/orm/typedsql/src/index.ts b/orm/typedsql/src/index.ts index 507d926c2b6c..2c47d6cb9552 100644 --- a/orm/typedsql/src/index.ts +++ b/orm/typedsql/src/index.ts @@ -1,12 +1,23 @@ import { PrismaClient } from '@prisma/client' import { conversionByVariant } from '@prisma/client/sql' +import { filterTrackingEvents } from '@prisma/client/sql' +import { getTrackingEvents } from '@prisma/client/sql' async function main() { const prisma = new PrismaClient() const stats = await prisma.$queryRawTyped(conversionByVariant()) - console.log(stats) + + const rows = await prisma.$queryRawTyped(filterTrackingEvents( + JSON.stringify(['PageOpened', 'ButtonClicked']), + JSON.stringify(['BlueBuyButton', 'RedBuyButton']) + )) + console.log(rows) + + const result = await prisma.$queryRawTyped(getTrackingEvents(5)) + console.log(result) + } main()