Skip to content

Commit b3a3e08

Browse files
committed
0.0.616
1 parent 009509f commit b3a3e08

File tree

4 files changed

+18
-5
lines changed

4 files changed

+18
-5
lines changed

imports/bool_exp_to_sql.ts

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,14 @@ const deep = new DeepClient({
2929

3030
export const itemReplaceSymbol = 777777777777;
3131
export const userReplaceSymbol = 777777777778;
32+
export const fromReplaceSymbol = 777777777779;
33+
export const toReplaceSymbol = 777777777780;
34+
export const typeReplaceSymbol = 777777777781;
3235
export const itemPublicSymbol = 'X-Deep-Item-Id';
3336
export const userPublicSymbol = 'X-Deep-User-Id';
37+
export const fromPublicSymbol = 'X-Deep-From-Id';
38+
export const toPublicSymbol = 'X-Deep-To-Id';
39+
export const typePublicSymbol = 'X-Deep-Type-Id';
3440

3541
export const applyBoolExpToLink = (sql: string, linkId: Id) => {
3642
return sql.replace(`${itemReplaceSymbol}`, `${linkId}`);
@@ -48,7 +54,9 @@ export const boolExpToSQL = async (boolExpId: Id, boolExpValue: any) => {
4854
gql = gql.replace(new RegExp(`'${userPublicSymbol}'`, 'g'), userReplaceSymbol);
4955
gql = gql.replace(new RegExp(`"${userPublicSymbol}"`, 'g'), userReplaceSymbol);
5056
gql = gql.replace(new RegExp(`'${itemPublicSymbol}'`, 'g'), itemReplaceSymbol);
51-
gql = gql.replace(new RegExp(`"${itemPublicSymbol}"`, 'g'), itemReplaceSymbol);
57+
gql = gql.replace(new RegExp(`"${fromPublicSymbol}"`, 'g'), fromReplaceSymbol);
58+
gql = gql.replace(new RegExp(`"${toPublicSymbol}"`, 'g'), toReplaceSymbol);
59+
gql = gql.replace(new RegExp(`"${typePublicSymbol}"`, 'g'), typeReplaceSymbol);
5260
explained = await api.explain(`{ links(where: { _and: [{ id: { _eq: ${itemReplaceSymbol} } }, ${gql}] }, limit: 1) { id } }`);
5361
sql = explained?.data?.[0]?.sql;
5462
if (sql) {

migrations/1622421760258-selectors.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { generateApolloClient } from '@deep-foundation/hasura/client.js';
22
import { sql } from '@deep-foundation/hasura/sql.js';
33
import Debug from 'debug';
4-
import { itemReplaceSymbol, userReplaceSymbol } from '../imports/bool_exp_to_sql.js';
4+
import { fromReplaceSymbol, itemReplaceSymbol, toReplaceSymbol, typeReplaceSymbol, userReplaceSymbol } from '../imports/bool_exp_to_sql.js';
55
import { DeepClient, _ids } from '../imports/client.js';
66
import { api, SCHEMA } from './1616701513782-links.js';
77
import { MP_TABLE_NAME } from './1621815803572-materialized-path.js';
@@ -63,17 +63,23 @@ export const up = async () => {
6363
await api.sql(sql`
6464
CREATE OR REPLACE FUNCTION bool_exp_execute(target_link_id bigint, bool_exp_link_id bigint, user_id bigint) RETURNS BOOL AS $trigger$ DECLARE
6565
boolExp RECORD;
66+
link RECORD;
6667
sqlResult INT;
6768
query TEXT;
6869
BEGIN
6970
SELECT be.* into boolExp
7071
FROM "${BOOL_EXP_TABLE_NAME}" as be
7172
WHERE be.link_id=bool_exp_link_id;
73+
74+
SELECT * into link
75+
FROM "links"
76+
WHERE id=target_link_id;
77+
7278
IF boolExp IS NOT NULL THEN
7379
IF (user_id IS NULL) THEN
7480
user_id := ${_ids?.['@deep-foundation/core']?.Any};
7581
END IF;
76-
SELECT REPLACE(REPLACE(boolExp.value, ${itemReplaceSymbol}::text, target_link_id::text), ${userReplaceSymbol}::text, user_id::text) INTO query;
82+
SELECT REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(boolExp.value, ${itemReplaceSymbol}::text, target_link_id::text), ${userReplaceSymbol}::text, user_id::text), ${fromReplaceSymbol}::text, user_id::text), ${toReplaceSymbol}::text, user_id::text), ${typeReplaceSymbol}::text, user_id::text) INTO query;
7783
EXECUTE query INTO sqlResult;
7884
IF sqlResult = 0 THEN
7985
RETURN FALSE;

migrations/1622421760260-permissions.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ const log = debug.extend('log');
1313
const error = debug.extend('error');
1414

1515
export const TABLE_NAME = 'links';
16-
export const REPLACE_PATTERN_ID = '777777777777';
1716

1817
const client = generateApolloClient({
1918
path: `${process.env.MIGRATIONS_HASURA_PATH}/v1/graphql`,

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@deep-foundation/deeplinks",
3-
"version": "0.0.615",
3+
"version": "0.0.616",
44
"license": "Unlicense",
55
"type": "module",
66
"main": "import.js",

0 commit comments

Comments
 (0)