refactor(pipedrive): make filterProvidedFields func reusable

This commit is contained in:
Rıdvan Akca
2023-10-20 19:25:06 +03:00
committed by Ali BARIN
parent 94e64676af
commit 034bc6a79e
7 changed files with 26 additions and 62 deletions

View File

@@ -1,13 +1,5 @@
import defineAction from '../../../../helpers/define-action';
function filterProvidedFields(body: Record<string, unknown>) {
return Object.keys(body).reduce<Record<string, unknown>>((result, key) => {
if (body[key]) {
result[key] = body[key];
}
return result;
}, {});
}
import { filterProvidedFields } from '../../common/filter-provided-fields';
export default defineAction({
name: 'Create activity',

View File

@@ -1,13 +1,5 @@
import defineAction from '../../../../helpers/define-action';
function filterProvidedFields(body: Record<string, unknown>) {
return Object.keys(body).reduce<Record<string, unknown>>((result, key) => {
if (body[key]) {
result[key] = body[key];
}
return result;
}, {});
}
import { filterProvidedFields } from '../../common/filter-provided-fields';
export default defineAction({
name: 'Create deal',

View File

@@ -1,18 +1,10 @@
import defineAction from '../../../../helpers/define-action';
import { filterProvidedFields } from '../../common/filter-provided-fields';
type LabelIds = { __id: string; leadLabelId: string }[];
type LabelValue = { amount?: number; currency?: string };
function filterProvidedFields(body: Record<string, unknown>) {
return Object.keys(body).reduce<Record<string, unknown>>((result, key) => {
if (body[key]) {
result[key] = body[key];
}
return result;
}, {});
}
export default defineAction({
name: 'Create lead',
key: 'createLead',
@@ -176,18 +168,12 @@ export default defineAction({
organization_id: Number(organizationId),
owner_id: Number(ownerId),
expected_close_date: expectedCloseDate as string,
label_ids: onlyLabelIds,
value: labelValue,
};
const body = filterProvidedFields(fields);
if (onlyLabelIds.length) {
body.label_ids = onlyLabelIds;
}
if (Object.keys(labelValue).length) {
body.value = labelValue;
}
const {
data: { data },
} = await $.http.post('/api/v1/leads', body);

View File

@@ -1,13 +1,5 @@
import defineAction from '../../../../helpers/define-action';
function filterProvidedFields(body: Record<string, unknown>) {
return Object.keys(body).reduce<Record<string, unknown>>((result, key) => {
if (body[key]) {
result[key] = body[key];
}
return result;
}, {});
}
import { filterProvidedFields } from '../../common/filter-provided-fields';
export default defineAction({
name: 'Create note',

View File

@@ -1,13 +1,5 @@
import defineAction from '../../../../helpers/define-action';
function filterProvidedFields(body: Record<string, unknown>) {
return Object.keys(body).reduce<Record<string, unknown>>((result, key) => {
if (body[key]) {
result[key] = body[key];
}
return result;
}, {});
}
import { filterProvidedFields } from '../../common/filter-provided-fields';
export default defineAction({
name: 'Create organization',

View File

@@ -1,4 +1,5 @@
import defineAction from '../../../../helpers/define-action';
import { filterProvidedFields } from '../../common/filter-provided-fields';
type TEmail = {
__id: string;
@@ -10,15 +11,6 @@ type TPhone = {
phone: string;
}[];
function filterProvidedFields(body: Record<string, unknown>) {
return Object.keys(body).reduce<Record<string, unknown>>((result, key) => {
if (body[key]) {
result[key] = body[key];
}
return result;
}, {});
}
export default defineAction({
name: 'Create person',
key: 'createPerson',

View File

@@ -0,0 +1,18 @@
import isObject from 'lodash/isObject';
export function filterProvidedFields(body: Record<string, unknown>) {
return Object.keys(body).reduce<Record<string, unknown>>((result, key) => {
const value = body[key];
if (isObject(value)) {
const filteredNestedObj = filterProvidedFields(
value as Record<string, unknown>
);
if (Object.keys(filteredNestedObj).length > 0) {
result[key] = filteredNestedObj;
}
} else if (body[key]) {
result[key] = value;
}
return result;
}, {});
}