From 0b76d37ebfdbed62e7c6c79b1a33de62fc0acc4a Mon Sep 17 00:00:00 2001 From: ponderingdemocritus Date: Wed, 23 Oct 2024 13:53:31 +1100 Subject: [PATCH] fix: change operator to or --- packages/sdk/src/__example__/index.ts | 1 + .../src/__tests__/convertQueryToClause.test.ts | 16 +++++++++------- packages/sdk/src/convertQuerytoClause.ts | 7 ++++--- packages/sdk/src/getEntities.ts | 2 +- packages/sdk/src/getEventMessages.ts | 2 +- packages/sdk/src/types.ts | 18 ++++++++++++------ 6 files changed, 28 insertions(+), 18 deletions(-) diff --git a/packages/sdk/src/__example__/index.ts b/packages/sdk/src/__example__/index.ts index 463a02f1..0270132d 100644 --- a/packages/sdk/src/__example__/index.ts +++ b/packages/sdk/src/__example__/index.ts @@ -1,5 +1,6 @@ // EXAMPLE FOR NOW +import * as torii from "@dojoengine/torii-client"; import { init } from ".."; import { SchemaType } from "../types"; diff --git a/packages/sdk/src/__tests__/convertQueryToClause.test.ts b/packages/sdk/src/__tests__/convertQueryToClause.test.ts index 1e6c2da4..fa8838c6 100644 --- a/packages/sdk/src/__tests__/convertQueryToClause.test.ts +++ b/packages/sdk/src/__tests__/convertQueryToClause.test.ts @@ -4,7 +4,7 @@ import { describe, expect, it } from "vitest"; import { MockSchemaType, schema } from "../__example__/index"; import { convertQueryToClause } from "../convertQuerytoClause"; -import { QueryType } from "../types"; +import { QueryType, SchemaType } from "../types"; describe("convertQueryToClause", () => { it("should convert a single model query with conditions", () => { @@ -27,7 +27,7 @@ describe("convertQueryToClause", () => { expect(result).toEqual({ Composite: { - operator: "And", + operator: "Or", clauses: [ { Member: { @@ -81,7 +81,7 @@ describe("convertQueryToClause", () => { expect(result).toEqual({ Composite: { - operator: "And", + operator: "Or", clauses: [ { Member: { @@ -110,10 +110,10 @@ describe("convertQueryToClause", () => { player: { $: { where: { - AND: [ + And: [ { score: { $gt: 100 } }, { - OR: [ + Or: [ { name: { $eq: "Alice" } }, { name: { $eq: "Bob" } }, ], @@ -125,7 +125,7 @@ describe("convertQueryToClause", () => { item: { $: { where: { - AND: [{ durability: { $lt: 50 } }], + And: [{ durability: { $lt: 50 } }], }, }, }, @@ -134,10 +134,12 @@ describe("convertQueryToClause", () => { const result = convertQueryToClause(query, schema); + console.log("result", result); + // Updated expectation to match the actual output expect(result).toEqual({ Composite: { - operator: "And", + operator: "Or", clauses: [ { Member: { diff --git a/packages/sdk/src/convertQuerytoClause.ts b/packages/sdk/src/convertQuerytoClause.ts index 26bc9996..d855fc00 100644 --- a/packages/sdk/src/convertQuerytoClause.ts +++ b/packages/sdk/src/convertQuerytoClause.ts @@ -33,7 +33,7 @@ export function convertQueryToClause( if (clauses.length > 1) { return { Composite: { - operator: "And", + operator: "Or", clauses: clauses, }, }; @@ -158,8 +158,8 @@ function buildWhereClause( ): torii.Clause | undefined { // Define logical operator mapping const logicalOperators: Record = { - AND: "And", - OR: "Or", + And: "And", + Or: "Or", }; // Check for logical operators first @@ -299,6 +299,7 @@ function convertToPrimitive(value: any): torii.MemberValue { * @throws {Error} - If the operator is unsupported. */ function convertOperator(operator: string): torii.ComparisonOperator { + console.log(operator); switch (operator) { case "$eq": return "Eq"; diff --git a/packages/sdk/src/getEntities.ts b/packages/sdk/src/getEntities.ts index 2496331f..34a21ff7 100644 --- a/packages/sdk/src/getEntities.ts +++ b/packages/sdk/src/getEntities.ts @@ -49,7 +49,7 @@ export async function getEntities( limit: limit, offset: cursor, clause, - dont_include_hashed_keys: query.entityIds ? false : true, + dont_include_hashed_keys: false, }; try { diff --git a/packages/sdk/src/getEventMessages.ts b/packages/sdk/src/getEventMessages.ts index 4ab5d1fe..cb0443e3 100644 --- a/packages/sdk/src/getEventMessages.ts +++ b/packages/sdk/src/getEventMessages.ts @@ -49,7 +49,7 @@ export async function getEventMessages( limit: limit, offset: cursor, clause, - dont_include_hashed_keys: true, + dont_include_hashed_keys: false, }; try { diff --git a/packages/sdk/src/types.ts b/packages/sdk/src/types.ts index 51493f91..49578180 100644 --- a/packages/sdk/src/types.ts +++ b/packages/sdk/src/types.ts @@ -84,14 +84,13 @@ export type QueryOptions = { /** * Logical operators for combining multiple conditions */ -export type LogicalOperator = "AND" | "OR"; /** * Recursively defines the conditions for the `where` clause. */ export type WhereCondition = | { - [key in LogicalOperator]?: Array>; + [key in torii.LogicalOperator]?: Array>; } | { [P in keyof TModel]?: { @@ -156,12 +155,14 @@ export type SubscriptionQueryType = { }; }; +export type BaseQueryType = { + entityIds?: string[]; +}; + /** - * QueryType for queries, using QueryWhereOptions + * Query type with model conditions */ -export type QueryType = { - entityIds?: string[]; -} & { +export type ModelQueryType = { [K in keyof T]?: { [L in keyof T[K]]?: | AtLeastOne<{ @@ -171,6 +172,11 @@ export type QueryType = { }; }; +/** + * Combined QueryType using union of base and model types + */ +export type QueryType = BaseQueryType | ModelQueryType; + /** * Result of a query */