Skip to content

Commit 008e018

Browse files
committed
cleanup code
1 parent 81e04d4 commit 008e018

1 file changed

Lines changed: 97 additions & 39 deletions

File tree

apps/sim/blocks/blocks/instantly.ts

Lines changed: 97 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -861,24 +861,9 @@ export const InstantlyBlock: BlockConfig<InstantlyResponse> = {
861861
config: {
862862
tool: (params) => `instantly_${params.operation}`,
863863
params: (params) => ({
864-
campaign:
865-
params.operation === 'list_leads'
866-
? optionalIdParam(params.campaignId)
867-
: params.leadDestination === 'campaign'
868-
? optionalIdParam(params.leadDestinationId)
869-
: undefined,
870-
list_id:
871-
params.operation === 'delete_leads' && params.deleteSource === 'list'
872-
? optionalIdParam(params.deleteSourceId)
873-
: params.leadDestination === 'list'
874-
? optionalIdParam(params.leadDestinationId)
875-
: optionalIdParam(params.listId),
876-
campaign_id:
877-
params.operation === 'delete_leads'
878-
? params.deleteSource === 'campaign'
879-
? optionalIdParam(params.deleteSourceId)
880-
: undefined
881-
: optionalIdParam(params.campaignId),
864+
campaign: mapCampaignParam(params),
865+
list_id: mapListIdParam(params),
866+
campaign_id: mapCampaignIdParam(params),
882867
leadId: params.leadId,
883868
email: emptyToUndefined(params.email),
884869
first_name: emptyToUndefined(params.firstName),
@@ -899,10 +884,7 @@ export const InstantlyBlock: BlockConfig<InstantlyResponse> = {
899884
verify_leads_for_lead_finder: toBooleanParam(params.verifyLeadsForLeadFinder),
900885
verify_leads_on_import: toBooleanParam(params.verifyLeadsOnImport),
901886
filter: emptyToUndefined(params.leadFilter),
902-
ids:
903-
params.operation === 'delete_leads'
904-
? parseStringList(params.deleteLeadIds)
905-
: parseStringList(params.leadIds),
887+
ids: mapIdsParam(params),
906888
excluded_ids: parseStringList(params.excludedLeadIds),
907889
contacts: parseStringList(params.contacts),
908890
organization_user_ids: parseStringList(params.organizationUserIds),
@@ -913,26 +895,17 @@ export const InstantlyBlock: BlockConfig<InstantlyResponse> = {
913895
esg_code: emptyToUndefined(params.esgCode),
914896
in_campaign: toBooleanParam(params.inCampaign),
915897
in_list: toBooleanParam(params.inList),
916-
status:
917-
params.operation === 'delete_leads'
918-
? toNumberParam(params.deleteStatus)
919-
: toNumberParam(params.campaignStatus),
920-
limit:
921-
params.operation === 'delete_leads'
922-
? toNumberParam(params.deleteLimit)
923-
: toNumberParam(params.limit),
924-
starting_after: emptyToUndefined(params.startingAfter),
898+
status: mapStatusParam(params),
899+
limit: mapLimitParam(params),
900+
starting_after: mapStartingAfterParam(params),
925901
lead_email: emptyToUndefined(params.leadEmail),
926902
interest_value:
927903
params.operation === 'update_lead_interest_status'
928904
? toNullableNumberParam(params.interestValue, true)
929905
: undefined,
930906
ai_interest_value: toNumberParam(params.aiInterestValue),
931907
disable_auto_interest: toBooleanParam(params.disableAutoInterest),
932-
name:
933-
params.operation === 'create_lead_list'
934-
? emptyToUndefined(params.leadListName)
935-
: emptyToUndefined(params.campaignName),
908+
name: mapNameParam(params),
936909
campaign_schedule: parseJsonObject(params.campaignSchedule),
937910
sequences: parseJsonArray(params.sequences),
938911
email_list: parseStringList(params.emailList),
@@ -946,10 +919,7 @@ export const InstantlyBlock: BlockConfig<InstantlyResponse> = {
946919
text_only: toBooleanParam(params.textOnly),
947920
tag_ids: emptyToUndefined(params.tagIds),
948921
ai_sales_agent_id: optionalIdParam(params.aiSalesAgentId),
949-
search:
950-
params.operation === 'list_emails'
951-
? emptyToUndefined(params.emailSearch)
952-
: emptyToUndefined(params.search),
922+
search: mapSearchParam(params),
953923
eaccount: emptyToUndefined(params.emailAccount),
954924
i_status: toNumberParam(params.emailStatus),
955925
lead: emptyToUndefined(params.emailLead),
@@ -1190,6 +1160,94 @@ function emptyToUndefined(value: unknown): unknown {
11901160
return trimmed === '' || trimmed === '-' ? undefined : trimmed
11911161
}
11921162

1163+
function mapCampaignParam(params: Record<string, unknown>): string | undefined {
1164+
if (params.operation === 'list_leads') return optionalIdParam(params.campaignId)
1165+
if (params.operation !== 'create_lead' || params.leadDestination !== 'campaign') return undefined
1166+
return optionalIdParam(params.leadDestinationId)
1167+
}
1168+
1169+
function mapListIdParam(params: Record<string, unknown>): string | undefined {
1170+
switch (params.operation) {
1171+
case 'delete_leads':
1172+
return params.deleteSource === 'list' ? optionalIdParam(params.deleteSourceId) : undefined
1173+
case 'create_lead':
1174+
return params.leadDestination === 'list'
1175+
? optionalIdParam(params.leadDestinationId)
1176+
: undefined
1177+
case 'list_leads':
1178+
case 'update_lead_interest_status':
1179+
case 'list_emails':
1180+
return optionalIdParam(params.listId)
1181+
default:
1182+
return undefined
1183+
}
1184+
}
1185+
1186+
function mapCampaignIdParam(params: Record<string, unknown>): string | undefined {
1187+
if (params.operation === 'delete_leads') {
1188+
return params.deleteSource === 'campaign' ? optionalIdParam(params.deleteSourceId) : undefined
1189+
}
1190+
1191+
if (params.operation === 'update_lead_interest_status' || params.operation === 'list_emails') {
1192+
return optionalIdParam(params.campaignId)
1193+
}
1194+
1195+
return undefined
1196+
}
1197+
1198+
function mapIdsParam(params: Record<string, unknown>): string[] | undefined {
1199+
if (params.operation === 'delete_leads') return parseStringList(params.deleteLeadIds)
1200+
if (params.operation === 'list_leads') return parseStringList(params.leadIds)
1201+
return undefined
1202+
}
1203+
1204+
function mapStatusParam(params: Record<string, unknown>): number | undefined {
1205+
if (params.operation === 'delete_leads') return toNumberParam(params.deleteStatus)
1206+
if (params.operation === 'list_campaigns') return toNumberParam(params.campaignStatus)
1207+
return undefined
1208+
}
1209+
1210+
function mapLimitParam(params: Record<string, unknown>): number | undefined {
1211+
if (params.operation === 'delete_leads') return toNumberParam(params.deleteLimit)
1212+
if (isPaginatedOperation(params.operation)) return toNumberParam(params.limit)
1213+
return undefined
1214+
}
1215+
1216+
function mapStartingAfterParam(params: Record<string, unknown>): unknown {
1217+
return isPaginatedOperation(params.operation) ? emptyToUndefined(params.startingAfter) : undefined
1218+
}
1219+
1220+
function mapNameParam(params: Record<string, unknown>): unknown {
1221+
switch (params.operation) {
1222+
case 'create_lead_list':
1223+
return emptyToUndefined(params.leadListName)
1224+
case 'create_campaign':
1225+
case 'patch_campaign':
1226+
return emptyToUndefined(params.campaignName)
1227+
default:
1228+
return undefined
1229+
}
1230+
}
1231+
1232+
function mapSearchParam(params: Record<string, unknown>): unknown {
1233+
if (params.operation === 'list_emails') return emptyToUndefined(params.emailSearch)
1234+
if (isSearchOperation(params.operation)) return emptyToUndefined(params.search)
1235+
return undefined
1236+
}
1237+
1238+
function isPaginatedOperation(value: unknown): boolean {
1239+
return (
1240+
value === 'list_leads' ||
1241+
value === 'list_campaigns' ||
1242+
value === 'list_emails' ||
1243+
value === 'list_lead_lists'
1244+
)
1245+
}
1246+
1247+
function isSearchOperation(value: unknown): boolean {
1248+
return value === 'list_leads' || value === 'list_campaigns' || value === 'list_lead_lists'
1249+
}
1250+
11931251
function optionalIdParam(value: unknown): string | undefined {
11941252
if (typeof value !== 'string') return undefined
11951253
const trimmed = value.trim()

0 commit comments

Comments
 (0)