Skip to content

Commit

Permalink
fix(database): schemas not being stored (#538)
Browse files Browse the repository at this point in the history
* fix(database): schemas not being stored
fix(database): getSchemas admin query not working as expected

* Update schema.admin.ts
  • Loading branch information
kkopanidis committed Feb 22, 2023
1 parent d784f40 commit adf8717
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 19 deletions.
2 changes: 1 addition & 1 deletion modules/database/src/adapters/DatabaseAdapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ export abstract class DatabaseAdapter<T extends Schema> {
}
stitchSchema(schema as ConduitDatabaseSchema); // @dirty-type-cast
const schemaUpdate = this.registeredSchemas.has(schema.name);
const createdSchema = await this._createSchemaFromAdapter(schema, instanceSync);
const createdSchema = await this._createSchemaFromAdapter(schema, !instanceSync);
this.hashSchemaFields(schema as ConduitDatabaseSchema); // @dirty-type-cast
if (!instanceSync && !schemaUpdate) {
ConduitGrpcSdk.Metrics?.increment('registered_schemas_total', 1, {
Expand Down
32 changes: 14 additions & 18 deletions modules/database/src/admin/schema.admin.ts
Original file line number Diff line number Diff line change
@@ -1,22 +1,23 @@
import ConduitGrpcSdk, {
ConduitSchema,
GrpcError,
TYPE,
Indexable,
ParsedRouterRequest,
TYPE,
UnparsedRouterResponse,
} from '@conduitplatform/grpc-sdk';
import { status } from '@grpc/grpc-js';
import { isNil, merge, isEmpty } from 'lodash';
import { validateSchemaInput, validatePermissions } from '../utils/utilities';
import { isEmpty, isNil, merge } from 'lodash';
import { validatePermissions, validateSchemaInput } from '../utils/utilities';
import { SchemaController } from '../controllers/cms/schema.controller';
import { CustomEndpointController } from '../controllers/customEndpoints/customEndpoint.controller';
import { DatabaseAdapter } from '../adapters/DatabaseAdapter';
import { MongooseSchema } from '../adapters/mongoose-adapter/MongooseSchema';
import { SequelizeSchema } from '../adapters/sequelize-adapter/SequelizeSchema';
import { _ConduitSchema, ParsedQuery } from '../interfaces';
import { SchemaConverter } from '../utils/SchemaConverter';
import escapeStringRegexp = require('escape-string-regexp');
import { parseSortParam } from '../handlers/utils';
import escapeStringRegexp = require('escape-string-regexp');

export class SchemaAdmin {
constructor(
Expand All @@ -43,30 +44,25 @@ export class SchemaAdmin {
const { search, sort, enabled, owner } = call.request.params;
const skip = call.request.params.skip ?? 0;
const limit = call.request.params.limit ?? 25;
let query: ParsedQuery = {};

const queryArray: Indexable[] = [{ name: { $nin: this.database.systemSchemas } }];
if (owner && owner?.length !== 0) {
query = {
$and: [query, { ownerModule: { $in: owner } }],
};
queryArray.push({ ownerModule: { $in: owner } });
}
let identifier;
if (!isNil(search)) {
identifier = escapeStringRegexp(search);
query['name'] = { $ilike: `%${identifier}%` };
queryArray.push({ name: { $ilike: `%${identifier}%` } });
}
if (!isNil(enabled)) {
const enabledQuery = {
queryArray.push({
$or: [
{ name: { $in: this.database.systemSchemas } },
{ ownerModule: { $ne: 'database' } },
{ 'modelOptions.conduit.cms.enabled': true },
{ 'modelOptions.conduit.cms.enabled': enabled },
{ 'modelOptions.conduit.permissions.extendable': enabled },
],
};
const disabledQuery = { 'modelOptions.conduit.cms.enabled': false };
query = {
$and: [query, enabled ? enabledQuery : disabledQuery],
};
});
}
const query: ParsedQuery = { $and: queryArray };
let parsedSort: { [key: string]: -1 | 1 } | undefined = undefined;
if (sort) {
parsedSort = parseSortParam(sort);
Expand Down

0 comments on commit adf8717

Please sign in to comment.