Skip to content

Commit a0c593f

Browse files
committed
fix(salesforce): address Greptile/Cursor review
- Add shared requireId() guard so whitespace-only IDs fail fast instead of producing malformed /sobjects/Object/ empty-path requests (all update/delete/single-get tools) - URL-encode the fields query value in get_opportunities and get_tasks single-record GETs (matching the other get_* tools) - Reflect the Salesforce API success flag consistently across all create tools (success/created use data.success === true)
1 parent 6b6349b commit a0c593f

23 files changed

Lines changed: 63 additions & 46 deletions

apps/sim/tools/salesforce/create_account.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,8 @@ export const salesforceCreateAccountTool: ToolConfig<
169169
success: true,
170170
output: {
171171
id: data.id,
172-
success: true,
173-
created: true,
172+
success: data.success === true,
173+
created: data.success === true,
174174
},
175175
}
176176
},

apps/sim/tools/salesforce/create_case.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ export const salesforceCreateCaseTool: ToolConfig<
108108
success: true,
109109
output: {
110110
id: data.id,
111-
success: data.success,
112-
created: true,
111+
success: data.success === true,
112+
created: data.success === true,
113113
},
114114
}
115115
},

apps/sim/tools/salesforce/create_contact.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -143,8 +143,8 @@ export const salesforceCreateContactTool: ToolConfig<
143143
success: true,
144144
output: {
145145
id: data.id,
146-
success: data.success,
147-
created: true,
146+
success: data.success === true,
147+
created: data.success === true,
148148
},
149149
}
150150
},

apps/sim/tools/salesforce/create_opportunity.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -103,8 +103,8 @@ export const salesforceCreateOpportunityTool: ToolConfig<
103103
success: true,
104104
output: {
105105
id: data.id,
106-
success: data.success,
107-
created: true,
106+
success: data.success === true,
107+
created: data.success === true,
108108
},
109109
}
110110
},

apps/sim/tools/salesforce/create_task.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ export const salesforceCreateTaskTool: ToolConfig<
108108
success: true,
109109
output: {
110110
id: data.id,
111-
success: data.success,
112-
created: true,
111+
success: data.success === true,
112+
created: data.success === true,
113113
},
114114
}
115115
},

apps/sim/tools/salesforce/delete_account.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type {
33
SalesforceDeleteAccountResponse,
44
} from '@/tools/salesforce/types'
55
import { SOBJECT_DELETE_OUTPUT_PROPERTIES } from '@/tools/salesforce/types'
6-
import { extractErrorMessage, getInstanceUrl } from '@/tools/salesforce/utils'
6+
import { extractErrorMessage, getInstanceUrl, requireId } from '@/tools/salesforce/utils'
77
import type { ToolConfig } from '@/tools/types'
88

99
export const salesforceDeleteAccountTool: ToolConfig<
@@ -47,7 +47,7 @@ export const salesforceDeleteAccountTool: ToolConfig<
4747
request: {
4848
url: (params) => {
4949
const instanceUrl = getInstanceUrl(params.idToken, params.instanceUrl)
50-
const accountId = params.accountId.trim()
50+
const accountId = requireId(params.accountId, 'Account ID')
5151

5252
return `${instanceUrl}/services/data/v59.0/sobjects/Account/${accountId}`
5353
},

apps/sim/tools/salesforce/delete_case.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type {
33
SalesforceDeleteCaseResponse,
44
} from '@/tools/salesforce/types'
55
import { SOBJECT_DELETE_OUTPUT_PROPERTIES } from '@/tools/salesforce/types'
6-
import { extractErrorMessage, getInstanceUrl } from '@/tools/salesforce/utils'
6+
import { extractErrorMessage, getInstanceUrl, requireId } from '@/tools/salesforce/utils'
77
import type { ToolConfig } from '@/tools/types'
88

99
export const salesforceDeleteCaseTool: ToolConfig<
@@ -46,7 +46,7 @@ export const salesforceDeleteCaseTool: ToolConfig<
4646

4747
request: {
4848
url: (params) => {
49-
const caseId = params.caseId.trim()
49+
const caseId = requireId(params.caseId, 'Case ID')
5050
return `${getInstanceUrl(params.idToken, params.instanceUrl)}/services/data/v59.0/sobjects/Case/${caseId}`
5151
},
5252
method: 'DELETE',

apps/sim/tools/salesforce/delete_contact.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import type {
44
SalesforceDeleteContactResponse,
55
} from '@/tools/salesforce/types'
66
import { SOBJECT_DELETE_OUTPUT_PROPERTIES } from '@/tools/salesforce/types'
7-
import { extractErrorMessage, getInstanceUrl } from '@/tools/salesforce/utils'
7+
import { extractErrorMessage, getInstanceUrl, requireId } from '@/tools/salesforce/utils'
88
import type { ToolConfig } from '@/tools/types'
99

1010
const logger = createLogger('SalesforceContacts')
@@ -35,7 +35,7 @@ export const salesforceDeleteContactTool: ToolConfig<
3535
request: {
3636
url: (params) => {
3737
const instanceUrl = getInstanceUrl(params.idToken, params.instanceUrl)
38-
const contactId = params.contactId.trim()
38+
const contactId = requireId(params.contactId, 'Contact ID')
3939
return `${instanceUrl}/services/data/v59.0/sobjects/Contact/${contactId}`
4040
},
4141
method: 'DELETE',

apps/sim/tools/salesforce/delete_lead.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import type {
33
SalesforceDeleteLeadResponse,
44
} from '@/tools/salesforce/types'
55
import { SOBJECT_DELETE_OUTPUT_PROPERTIES } from '@/tools/salesforce/types'
6-
import { extractErrorMessage, getInstanceUrl } from '@/tools/salesforce/utils'
6+
import { extractErrorMessage, getInstanceUrl, requireId } from '@/tools/salesforce/utils'
77
import type { ToolConfig } from '@/tools/types'
88

99
export const salesforceDeleteLeadTool: ToolConfig<
@@ -34,7 +34,7 @@ export const salesforceDeleteLeadTool: ToolConfig<
3434

3535
request: {
3636
url: (params) => {
37-
const leadId = params.leadId.trim()
37+
const leadId = requireId(params.leadId, 'Lead ID')
3838
return `${getInstanceUrl(params.idToken, params.instanceUrl)}/services/data/v59.0/sobjects/Lead/${leadId}`
3939
},
4040
method: 'DELETE',

apps/sim/tools/salesforce/delete_opportunity.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import type {
44
SalesforceDeleteOpportunityResponse,
55
} from '@/tools/salesforce/types'
66
import { SOBJECT_DELETE_OUTPUT_PROPERTIES } from '@/tools/salesforce/types'
7-
import { extractErrorMessage, getInstanceUrl } from '@/tools/salesforce/utils'
7+
import { extractErrorMessage, getInstanceUrl, requireId } from '@/tools/salesforce/utils'
88
import type { ToolConfig } from '@/tools/types'
99

1010
const logger = createLogger('SalesforceDeleteOpportunity')
@@ -37,7 +37,7 @@ export const salesforceDeleteOpportunityTool: ToolConfig<
3737

3838
request: {
3939
url: (params) => {
40-
const opportunityId = params.opportunityId.trim()
40+
const opportunityId = requireId(params.opportunityId, 'Opportunity ID')
4141
return `${getInstanceUrl(params.idToken, params.instanceUrl)}/services/data/v59.0/sobjects/Opportunity/${opportunityId}`
4242
},
4343
method: 'DELETE',

0 commit comments

Comments
 (0)