@terabits/grapi
Version:
Grapi Schema Generator For GraphQL Server
49 lines (48 loc) • 1.78 kB
TypeScript
import { ListFindQuery } from '..';
import { Model, RelationType } from '../dataModel';
import { Relation } from './interface';
export default class ManyToMany implements Relation {
private readonly modelA;
private readonly modelB;
private readonly modelAField;
private readonly modelBField;
constructor({ modelA, modelB, modelAField, modelBField, }: {
modelA: Model;
modelB: Model;
modelAField: string;
modelBField?: string;
});
getType(): RelationType;
getModelA(): Model;
getModelAField(): string;
getModelB(): Model;
getModelBField(): string;
addId({ modelAId, modelBId }: {
modelAId: string;
modelBId: string;
}, context: any): Promise<void>;
private createAndAddIdFromRefSide;
createAndAddIdForModelA({ modelAId, modelBData }: {
modelAId: string;
modelBData: Record<string, any>;
}, context: any): Promise<void>;
createAndAddIdForModelB({ modelBId, modelAData }: {
modelBId: string;
modelAData: Record<string, any>;
}, context: any): Promise<any>;
removeId({ modelAId, modelBId }: {
modelAId: string;
modelBId: string;
}, context: any): Promise<void>;
deleteAndRemoveIdFromModelA({ modelAId, modelBId }: {
modelAId: string;
modelBId: string;
}, context: any): Promise<void>;
deleteAndRemoveIdFromModelB({ modelAId, modelBId }: {
modelAId: string;
modelBId: string;
}, context: any): Promise<void>;
joinModelA(modelBId: string, argument: Record<string, any>, context: any): Promise<any[]>;
joinModelB(modelAId: string, argument: Record<string, any>, context: any): Promise<any[]>;
listFindQuery(argument: Record<string, any>): ListFindQuery;
}