Merge pull request #707 from automatisch/refactor/dynamic-data

refactor: Use getDynamicData instead of getData
This commit is contained in:
Ömer Faruk Aydın
2022-11-10 19:48:30 +01:00
committed by GitHub
33 changed files with 57 additions and 42 deletions

View File

@@ -14,7 +14,7 @@ export default defineAction({
variables: false,
source: {
type: 'query',
name: 'getData',
name: 'getDynamicData',
arguments: [
{
name: 'key',

View File

@@ -1,7 +1,7 @@
import defineApp from '../../helpers/define-app';
import addAuthHeader from './common/add-auth-header';
import auth from './auth';
import data from './data';
import dynamicData from './dynamic-data';
import actions from './actions';
import triggers from './triggers';
@@ -16,7 +16,7 @@ export default defineApp({
primaryColor: '5865f2',
beforeRequest: [addAuthHeader],
auth,
data,
dynamicData,
triggers,
actions,
});

View File

@@ -2,7 +2,7 @@ import defineApp from '../../helpers/define-app';
import addAuthHeader from './common/add-auth-header';
import auth from './auth';
import triggers from './triggers';
import data from './data';
import dynamicData from './dynamic-data';
export default defineApp({
name: 'Flickr',
@@ -17,5 +17,5 @@ export default defineApp({
beforeRequest: [addAuthHeader],
auth,
triggers,
data,
dynamicData,
});

View File

@@ -15,7 +15,7 @@ export default defineTrigger({
variables: false,
source: {
type: 'query',
name: 'getData',
name: 'getDynamicData',
arguments: [
{
name: 'key',

View File

@@ -14,7 +14,7 @@ export default defineAction({
variables: false,
source: {
type: 'query',
name: 'getData',
name: 'getDynamicData',
arguments: [
{
name: 'key',

View File

@@ -3,7 +3,7 @@ import addAuthHeader from './common/add-auth-header';
import auth from './auth';
import triggers from './triggers';
import actions from './actions';
import data from './data';
import dynamicData from './dynamic-data';
export default defineApp({
name: 'Github',
@@ -18,5 +18,5 @@ export default defineApp({
auth,
triggers,
actions,
data,
dynamicData,
});

View File

@@ -15,7 +15,7 @@ export default defineTrigger({
variables: false,
source: {
type: 'query',
name: 'getData',
name: 'getDynamicData',
arguments: [
{
name: 'key',
@@ -65,7 +65,7 @@ export default defineTrigger({
dependsOn: ['parameters.repo'],
source: {
type: 'query',
name: 'getData',
name: 'getDynamicData',
arguments: [
{
name: 'key',

View File

@@ -15,7 +15,7 @@ export default defineTrigger({
variables: false,
source: {
type: 'query',
name: 'getData',
name: 'getDynamicData',
arguments: [
{
name: 'key',

View File

@@ -15,7 +15,7 @@ export default defineTrigger({
variables: false,
source: {
type: 'query',
name: 'getData',
name: 'getDynamicData',
arguments: [
{
name: 'key',

View File

@@ -15,7 +15,7 @@ export default defineTrigger({
variables: false,
source: {
type: 'query',
name: 'getData',
name: 'getDynamicData',
arguments: [
{
name: 'key',

View File

@@ -2,7 +2,7 @@ import defineApp from '../../helpers/define-app';
import addAuthHeader from './common/add-auth-header';
import auth from './auth';
import triggers from './triggers';
import data from './data';
import dynamicData from './dynamic-data';
export default defineApp({
name: 'Salesforce',
@@ -16,5 +16,5 @@ export default defineApp({
beforeRequest: [addAuthHeader],
auth,
triggers,
data,
dynamicData,
});

View File

@@ -15,7 +15,7 @@ export default defineTrigger({
variables: false,
source: {
type: 'query',
name: 'getData',
name: 'getDynamicData',
arguments: [
{
name: 'key',
@@ -34,7 +34,7 @@ export default defineTrigger({
dependsOn: ['parameters.object'],
source: {
type: 'query',
name: 'getData',
name: 'getDynamicData',
arguments: [
{
name: 'key',

View File

@@ -15,7 +15,7 @@ export default defineAction({
variables: false,
source: {
type: 'query',
name: 'getData',
name: 'getDynamicData',
arguments: [
{
name: 'key',

View File

@@ -2,7 +2,7 @@ import defineApp from '../../helpers/define-app';
import addAuthHeader from './common/add-auth-header';
import actions from './actions';
import auth from './auth';
import data from './data';
import dynamicData from './dynamic-data';
export default defineApp({
name: 'Slack',
@@ -16,5 +16,5 @@ export default defineApp({
beforeRequest: [addAuthHeader],
auth,
actions,
data,
dynamicData,
});

View File

@@ -1,4 +1,4 @@
import { IData, IJSONObject } from '@automatisch/types';
import { IDynamicData, IJSONObject } from '@automatisch/types';
import Context from '../../types/express/context';
import App from '../../models/app';
import globalVariable from '../../helpers/global-variable';
@@ -9,7 +9,11 @@ type Params = {
parameters: IJSONObject;
};
const getData = async (_parent: unknown, params: Params, context: Context) => {
const getDynamicData = async (
_parent: unknown,
params: Params,
context: Context
) => {
const step = await context.currentUser
.$relatedQuery('steps')
.withGraphFetched({
@@ -27,7 +31,9 @@ const getData = async (_parent: unknown, params: Params, context: Context) => {
const app = await App.findOneByKey(step.appKey);
const $ = await globalVariable({ connection, app, flow: step.flow, step });
const command = app.data.find((data: IData) => data.key === params.key);
const command = app.dynamicData.find(
(data: IDynamicData) => data.key === params.key
);
for (const parameterKey in params.parameters) {
const parameterValue = params.parameters[parameterKey];
@@ -43,4 +49,4 @@ const getData = async (_parent: unknown, params: Params, context: Context) => {
return fetchedData.data;
};
export default getData;
export default getDynamicData;

View File

@@ -8,7 +8,7 @@ import getStepWithTestExecutions from './queries/get-step-with-test-executions';
import getExecution from './queries/get-execution';
import getExecutions from './queries/get-executions';
import getExecutionSteps from './queries/get-execution-steps';
import getData from './queries/get-data';
import getDynamicData from './queries/get-dynamic-data';
import getCurrentUser from './queries/get-current-user';
import healthcheck from './queries/healthcheck';
@@ -23,7 +23,7 @@ const queryResolvers = {
getExecution,
getExecutions,
getExecutionSteps,
getData,
getDynamicData,
getCurrentUser,
healthcheck,
};

View File

@@ -23,7 +23,11 @@ type Query {
limit: Int!
offset: Int!
): ExecutionStepConnection
getData(stepId: String!, key: String!, parameters: JSONObject): JSONObject
getDynamicData(
stepId: String!
key: String!
parameters: JSONObject
): JSONObject
getCurrentUser: User
healthcheck: AppHealth
}

View File

@@ -163,7 +163,7 @@ export interface IApp {
connectionCount?: number;
flowCount?: number;
beforeRequest?: TBeforeRequest[];
data?: IData;
dynamicData?: IDynamicData;
triggers?: ITrigger[];
actions?: IAction[];
connections?: IConnection[];
@@ -173,7 +173,7 @@ export type TBeforeRequest = {
($: IGlobalVariable, requestConfig: AxiosRequestConfig): AxiosRequestConfig;
};
export interface IData {
export interface IDynamicData {
[index: string]: any;
}

View File

@@ -1,7 +0,0 @@
import { gql } from '@apollo/client';
export const GET_DATA = gql`
query GetData($stepId: String!, $key: String!, $parameters: JSONObject) {
getData(stepId: $stepId, key: $key, parameters: $parameters)
}
`;

View File

@@ -0,0 +1,11 @@
import { gql } from '@apollo/client';
export const GET_DYNAMIC_DATA = gql`
query GetDynamicData(
$stepId: String!
$key: String!
$parameters: JSONObject
) {
getDynamicData(stepId: $stepId, key: $key, parameters: $parameters)
}
`;

View File

@@ -10,7 +10,7 @@ import type {
IJSONObject,
} from '@automatisch/types';
import { GET_DATA } from 'graphql/queries/get-data';
import { GET_DYNAMIC_DATA } from 'graphql/queries/get-dynamic-data';
const variableRegExp = /({.*?})/g;
@@ -49,7 +49,8 @@ function computeArguments(
*/
function useDynamicData(stepId: string | undefined, schema: IField) {
const lastComputedVariables = React.useRef({});
const [getData, { called, data, loading }] = useLazyQuery(GET_DATA);
const [getDynamicData, { called, data, loading }] =
useLazyQuery(GET_DYNAMIC_DATA);
const { getValues } = useFormContext();
const formValues = getValues();
@@ -91,18 +92,18 @@ function useDynamicData(stepId: string | undefined, schema: IField) {
schema.source &&
computedVariables
) {
getData({
getDynamicData({
variables: {
stepId,
...computedVariables,
},
});
}
}, [getData, stepId, schema, computedVariables]);
}, [getDynamicData, stepId, schema, computedVariables]);
return {
called,
data: data?.getData,
data: data?.getDynamicData,
loading,
};
}