@grouparoo/core
Version:
The Grouparoo Core
724 lines (723 loc) • 25 kB
TypeScript
import { AuthenticatedAction } from "../classes/actions/authenticatedAction";
import { APIData } from "../modules/apiData";
import { ActionPermission } from "../models/Permission";
import { ParamsFrom } from "actionhero";
export declare class GroupsList extends AuthenticatedAction {
name: string;
description: string;
outputExample: {};
permission: ActionPermission;
inputs: {
readonly limit: {
readonly required: true;
readonly default: 100;
readonly formatter: typeof APIData.ensureNumber;
};
readonly offset: {
readonly required: true;
readonly default: 0;
readonly formatter: typeof APIData.ensureNumber;
};
readonly state: {
readonly required: false;
};
readonly modelId: {
readonly required: false;
};
readonly order: {
readonly required: false;
readonly formatter: typeof APIData.ensureArray;
readonly default: readonly [readonly ["name", "desc"], readonly ["createdAt", "desc"]];
};
};
runWithinTransaction({ params }: {
params: ParamsFrom<GroupsList>;
}): Promise<{
total: number;
groups: {
id: string;
name: string;
modelId: string;
modelName: string;
rules: import("../models/Group").GroupRuleWithKey[];
matchType: "all" | "any";
state: "ready" | "draft" | "deleted" | "initializing" | "updating";
locked: string;
recordsCount: number;
createdAt: number;
updatedAt: number;
nextCalculatedAt: number;
calculatedAt: number;
}[];
}>;
}
export declare class GroupsRuleOptions extends AuthenticatedAction {
name: string;
description: string;
outputExample: {};
permission: ActionPermission;
runWithinTransaction(): Promise<{
ruleLimit: number;
ops: {
boolean: readonly [{
readonly op: "exists";
readonly description: "exists with any value";
}, {
readonly op: "notExists";
readonly description: "does not exist";
}, {
readonly op: "eq";
readonly description: "is equal to";
}, {
readonly op: "ne";
readonly description: "is not equal to";
}];
date: readonly [{
readonly op: "exists";
readonly description: "exists with any value";
}, {
readonly op: "notExists";
readonly description: "does not exist";
}, {
readonly op: "eq";
readonly description: "is equal to";
}, {
readonly op: "ne";
readonly description: "is not equal to";
}, {
readonly op: "gt";
readonly description: "is after";
}, {
readonly op: "lt";
readonly description: "is before";
}, {
readonly op: "gte";
readonly description: "is on or after";
}, {
readonly op: "lte";
readonly description: "is on or before";
}, {
readonly op: "relative_gt";
readonly description: "is in the past";
}, {
readonly op: "relative_lt";
readonly description: "is in the future";
}];
email: readonly [{
readonly op: "exists";
readonly description: "exists with any value";
}, {
readonly op: "notExists";
readonly description: "does not exist";
}, {
readonly op: "eq";
readonly description: "is equal to";
}, {
readonly op: "ne";
readonly description: "is not equal to";
}, {
readonly op: "like";
readonly description: "is like (case sensitive)";
}, {
readonly op: "notLike";
readonly description: "is not like (case sensitive)";
}, {
readonly op: "startsWith";
readonly description: "starts with";
}, {
readonly op: "endsWith";
readonly description: "ends with";
}, {
readonly op: "substring";
readonly description: "includes the string";
}] | readonly [{
readonly op: "exists";
readonly description: "exists with any value";
}, {
readonly op: "notExists";
readonly description: "does not exist";
}, {
readonly op: "eq";
readonly description: "is equal to";
}, {
readonly op: "ne";
readonly description: "is not equal to";
}, {
readonly op: "like";
readonly description: "is like (case sensitive)";
}, {
readonly op: "notLike";
readonly description: "is not like (case sensitive)";
}, {
readonly op: "startsWith";
readonly description: "starts with";
}, {
readonly op: "endsWith";
readonly description: "ends with";
}, {
readonly op: "substring";
readonly description: "includes the string";
}, {
readonly op: "iLike";
readonly description: "is like (case insensitive)";
}, {
readonly op: "notILike";
readonly description: "is not like (case insensitive)";
}];
float: readonly [{
readonly op: "exists";
readonly description: "exists with any value";
}, {
readonly op: "notExists";
readonly description: "does not exist";
}, {
readonly op: "eq";
readonly description: "is equal to";
}, {
readonly op: "ne";
readonly description: "is not equal to";
}, {
readonly op: "gt";
readonly description: "is greater than";
}, {
readonly op: "lt";
readonly description: "is less than";
}, {
readonly op: "gte";
readonly description: "is greater than or equal to";
}, {
readonly op: "lte";
readonly description: "is less than or equal to";
}];
integer: readonly [{
readonly op: "exists";
readonly description: "exists with any value";
}, {
readonly op: "notExists";
readonly description: "does not exist";
}, {
readonly op: "eq";
readonly description: "is equal to";
}, {
readonly op: "ne";
readonly description: "is not equal to";
}, {
readonly op: "gt";
readonly description: "is greater than";
}, {
readonly op: "lt";
readonly description: "is less than";
}, {
readonly op: "gte";
readonly description: "is greater than or equal to";
}, {
readonly op: "lte";
readonly description: "is less than or equal to";
}];
phoneNumber: readonly [{
readonly op: "exists";
readonly description: "exists with any value";
}, {
readonly op: "notExists";
readonly description: "does not exist";
}, {
readonly op: "eq";
readonly description: "is equal to";
}, {
readonly op: "ne";
readonly description: "is not equal to";
}, {
readonly op: "like";
readonly description: "is like (case sensitive)";
}, {
readonly op: "notLike";
readonly description: "is not like (case sensitive)";
}, {
readonly op: "startsWith";
readonly description: "starts with";
}, {
readonly op: "endsWith";
readonly description: "ends with";
}, {
readonly op: "substring";
readonly description: "includes the string";
}] | readonly [{
readonly op: "exists";
readonly description: "exists with any value";
}, {
readonly op: "notExists";
readonly description: "does not exist";
}, {
readonly op: "eq";
readonly description: "is equal to";
}, {
readonly op: "ne";
readonly description: "is not equal to";
}, {
readonly op: "like";
readonly description: "is like (case sensitive)";
}, {
readonly op: "notLike";
readonly description: "is not like (case sensitive)";
}, {
readonly op: "startsWith";
readonly description: "starts with";
}, {
readonly op: "endsWith";
readonly description: "ends with";
}, {
readonly op: "substring";
readonly description: "includes the string";
}, {
readonly op: "iLike";
readonly description: "is like (case insensitive)";
}, {
readonly op: "notILike";
readonly description: "is not like (case insensitive)";
}];
string: readonly [{
readonly op: "exists";
readonly description: "exists with any value";
}, {
readonly op: "notExists";
readonly description: "does not exist";
}, {
readonly op: "eq";
readonly description: "is equal to";
}, {
readonly op: "ne";
readonly description: "is not equal to";
}, {
readonly op: "like";
readonly description: "is like (case sensitive)";
}, {
readonly op: "notLike";
readonly description: "is not like (case sensitive)";
}, {
readonly op: "startsWith";
readonly description: "starts with";
}, {
readonly op: "endsWith";
readonly description: "ends with";
}, {
readonly op: "substring";
readonly description: "includes the string";
}] | readonly [{
readonly op: "exists";
readonly description: "exists with any value";
}, {
readonly op: "notExists";
readonly description: "does not exist";
}, {
readonly op: "eq";
readonly description: "is equal to";
}, {
readonly op: "ne";
readonly description: "is not equal to";
}, {
readonly op: "like";
readonly description: "is like (case sensitive)";
}, {
readonly op: "notLike";
readonly description: "is not like (case sensitive)";
}, {
readonly op: "startsWith";
readonly description: "starts with";
}, {
readonly op: "endsWith";
readonly description: "ends with";
}, {
readonly op: "substring";
readonly description: "includes the string";
}, {
readonly op: "iLike";
readonly description: "is like (case insensitive)";
}, {
readonly op: "notILike";
readonly description: "is not like (case insensitive)";
}];
url: readonly [{
readonly op: "exists";
readonly description: "exists with any value";
}, {
readonly op: "notExists";
readonly description: "does not exist";
}, {
readonly op: "eq";
readonly description: "is equal to";
}, {
readonly op: "ne";
readonly description: "is not equal to";
}, {
readonly op: "like";
readonly description: "is like (case sensitive)";
}, {
readonly op: "notLike";
readonly description: "is not like (case sensitive)";
}, {
readonly op: "startsWith";
readonly description: "starts with";
}, {
readonly op: "endsWith";
readonly description: "ends with";
}, {
readonly op: "substring";
readonly description: "includes the string";
}] | readonly [{
readonly op: "exists";
readonly description: "exists with any value";
}, {
readonly op: "notExists";
readonly description: "does not exist";
}, {
readonly op: "eq";
readonly description: "is equal to";
}, {
readonly op: "ne";
readonly description: "is not equal to";
}, {
readonly op: "like";
readonly description: "is like (case sensitive)";
}, {
readonly op: "notLike";
readonly description: "is not like (case sensitive)";
}, {
readonly op: "startsWith";
readonly description: "starts with";
}, {
readonly op: "endsWith";
readonly description: "ends with";
}, {
readonly op: "substring";
readonly description: "includes the string";
}, {
readonly op: "iLike";
readonly description: "is like (case insensitive)";
}, {
readonly op: "notILike";
readonly description: "is not like (case insensitive)";
}];
_relativeMatchUnits: readonly ["days", "weeks", "months", "quarters", "years"];
_convenientRules: {
exists: {
operation: {
op: string;
};
match: string;
};
notExists: {
operation: {
op: string;
};
match: string;
};
relative_gt: {
operation: {
op: string;
};
relativeMatchDirection: string;
};
relative_lt: {
operation: {
op: string;
};
relativeMatchDirection: string;
};
};
};
topLevelGroupRules: readonly [{
readonly key: "grouparooId";
readonly column: "id";
readonly type: "string";
}, {
readonly key: "grouparooCreatedAt";
readonly column: "createdAt";
readonly type: "date";
}];
}>;
}
export declare class GroupCreate extends AuthenticatedAction {
name: string;
description: string;
outputExample: {};
permission: ActionPermission;
inputs: {
readonly name: {
readonly required: true;
};
readonly modelId: {
readonly required: true;
};
readonly matchType: {
readonly required: true;
readonly default: "all";
};
readonly rules: {
readonly required: false;
readonly formatter: typeof APIData.ensureArray;
};
readonly state: {
readonly required: false;
};
};
runWithinTransaction({ params }: {
params: ParamsFrom<GroupCreate>;
}): Promise<{
group: {
id: string;
name: string;
modelId: string;
modelName: string;
rules: import("../models/Group").GroupRuleWithKey[];
matchType: "all" | "any";
state: "ready" | "draft" | "deleted" | "initializing" | "updating";
locked: string;
recordsCount: number;
createdAt: number;
updatedAt: number;
nextCalculatedAt: number;
calculatedAt: number;
};
}>;
}
export declare class GroupEdit extends AuthenticatedAction {
name: string;
description: string;
outputExample: {};
permission: ActionPermission;
inputs: {
readonly id: {
readonly required: true;
};
readonly name: {
readonly required: false;
};
readonly matchType: {
readonly required: false;
};
readonly rules: {
readonly required: false;
readonly formatter: typeof APIData.ensureArray;
};
};
runWithinTransaction({ params }: {
params: ParamsFrom<GroupEdit>;
}): Promise<{
group: {
id: string;
name: string;
modelId: string;
modelName: string;
rules: import("../models/Group").GroupRuleWithKey[];
matchType: "all" | "any";
state: "ready" | "draft" | "deleted" | "initializing" | "updating";
locked: string;
recordsCount: number;
createdAt: number;
updatedAt: number;
nextCalculatedAt: number;
calculatedAt: number;
};
}>;
}
export declare class GroupRun extends AuthenticatedAction {
name: string;
description: string;
outputExample: {};
permission: ActionPermission;
inputs: {
readonly id: {
readonly required: true;
};
};
runWithinTransaction({ params }: {
params: ParamsFrom<GroupRun>;
}): Promise<{
success: boolean;
}>;
}
export declare class GroupView extends AuthenticatedAction {
name: string;
description: string;
outputExample: {};
permission: ActionPermission;
inputs: {
readonly id: {
readonly required: true;
};
};
runWithinTransaction({ params }: {
params: ParamsFrom<GroupView>;
}): Promise<{
group: {
id: string;
name: string;
modelId: string;
modelName: string;
rules: import("../models/Group").GroupRuleWithKey[];
matchType: "all" | "any";
state: "ready" | "draft" | "deleted" | "initializing" | "updating";
locked: string;
recordsCount: number;
createdAt: number;
updatedAt: number;
nextCalculatedAt: number;
calculatedAt: number;
};
}>;
}
export declare class GroupCountComponentMembers extends AuthenticatedAction {
name: string;
description: string;
outputExample: {};
permission: ActionPermission;
inputs: {
readonly id: {
readonly required: true;
};
readonly rules: {
readonly required: false;
readonly formatter: typeof APIData.ensureArray;
};
};
runWithinTransaction({ params, }: {
params: ParamsFrom<GroupCountComponentMembers>;
}): Promise<{
componentCounts: number[];
funnelCounts: number[];
}>;
}
export declare class GroupCountPotentialMembers extends AuthenticatedAction {
name: string;
description: string;
outputExample: {};
permission: ActionPermission;
inputs: {
readonly id: {
readonly required: true;
};
readonly rules: {
readonly required: false;
readonly formatter: typeof APIData.ensureArray;
};
};
runWithinTransaction({ params, }: {
params: ParamsFrom<GroupCountPotentialMembers>;
}): Promise<{
count: number;
}>;
}
export declare class GroupListDestinations extends AuthenticatedAction {
name: string;
description: string;
outputExample: {};
permission: ActionPermission;
inputs: {
readonly id: {
readonly required: true;
};
};
runWithinTransaction({ params, }: {
params: ParamsFrom<GroupListDestinations>;
}): Promise<{
total: number;
destinations: {
id: string;
name: string;
type: string;
state: "ready" | "draft" | "deleted";
locked: string;
syncMode: "sync" | "additive" | "enrich";
syncModes: {
key: "sync" | "additive" | "enrich";
displayName: string;
description: string;
operations: import("..").DestinationSyncOperations;
}[];
collection: "none" | "group" | "model";
app: {
id: string;
name: string;
icon: string;
type: string;
state: "ready" | "draft" | "deleted";
locked: string;
options: import("../modules/optionHelper").OptionHelper.SimpleOptions;
provides: {
source: boolean;
destination: boolean;
};
pluginName: string;
pluginApp: import("..").PluginApp;
refreshQueryAvailable: boolean;
createdAt: number;
updatedAt: number;
appRefreshQuery: {
id: string;
appId: string;
refreshQuery: string;
value: string;
locked: string;
state: "ready" | "draft";
lastChangedAt: number;
lastConfirmedAt: number;
recurringFrequency: number;
createdAt: number;
updatedAt: number;
};
};
modelId: string;
modelName: string;
mapping: import("../modules/mappingHelper").MappingHelper.Mappings;
options: import("../modules/optionHelper").OptionHelper.SimpleOptions;
connection: import("..").PluginConnection;
group: {
id: string;
name: string;
modelId: string;
modelName: string;
rules: import("../models/Group").GroupRuleWithKey[];
matchType: "all" | "any";
state: "ready" | "draft" | "deleted" | "initializing" | "updating";
locked: string;
recordsCount: number;
createdAt: number;
updatedAt: number;
nextCalculatedAt: number;
calculatedAt: number;
};
destinationGroupMemberships: import("../models/Destination").SimpleDestinationGroupMembership[];
createdAt: number;
updatedAt: number;
exportTotals: {
failed: number;
canceled: number;
complete: number;
pending: number;
draft: number;
processing: number;
};
}[];
}>;
}
export declare class GroupDestroy extends AuthenticatedAction {
name: string;
description: string;
outputExample: {};
permission: ActionPermission;
inputs: {
readonly id: {
readonly required: true;
};
readonly force: {
readonly required: true;
readonly default: false;
readonly formatter: typeof APIData.ensureBoolean;
};
};
runWithinTransaction({ params }: {
params: ParamsFrom<GroupDestroy>;
}): Promise<{
success: boolean;
}>;
}