@@ -144,6 +144,35 @@ const query = {
144144 } ) ,
145145 } ) ,
146146 ) ,
147+ batchRead : < T extends z . ZodType > ( {
148+ schema,
149+ objectType,
150+ relationalSelect,
151+ } : {
152+ schema : T ;
153+ objectType : SalesforceSupportedObjectType ;
154+ relationalSelect ?: Partial < Record < SalesforceSupportedObjectType , string > > ;
155+ } ) =>
156+ request (
157+ ( {
158+ Ids,
159+ associations,
160+ } : {
161+ Ids : string [ ] ;
162+ associations ?: SalesforceSupportedObjectType [ ] ;
163+ } ) => ( {
164+ url : `/query/?q=${ salesforceQueryBuilder . batchRead ( {
165+ ids : Ids ,
166+ objectType,
167+ relationalSelect,
168+ associations,
169+ } ) } `,
170+ method : 'GET' ,
171+ schema : z . object ( {
172+ records : z . array ( schema ) ,
173+ } ) ,
174+ } ) ,
175+ ) ,
147176} ;
148177
149178export const client = {
@@ -166,7 +195,11 @@ export const client = {
166195 method : 'GET' ,
167196 schema : salesforceUser ,
168197 } ) ) ,
169- list : query . list ( {
198+ list : query . list < typeof salesforceUser > ( {
199+ objectType : 'User' ,
200+ schema : salesforceUser ,
201+ } ) ,
202+ batchRead : query . batchRead < typeof salesforceUser > ( {
170203 objectType : 'User' ,
171204 schema : salesforceUser ,
172205 } ) ,
@@ -180,6 +213,10 @@ export const client = {
180213 objectType : 'Contact' ,
181214 schema : salesforceContact ,
182215 } ) ,
216+ batchRead : query . batchRead < typeof salesforceContact > ( {
217+ objectType : 'Contact' ,
218+ schema : salesforceContact ,
219+ } ) ,
183220 create : request ( ( { Contact } : SalesforceContactCreate ) => ( {
184221 url : `/sobjects/Contact` ,
185222 method : 'POST' ,
@@ -255,6 +292,11 @@ export const client = {
255292 schema : salesforceAccount ,
256293 relationalSelect : salesforceAccountRelationalSelect ,
257294 } ) ,
295+ batchRead : query . batchRead < typeof salesforceAccount > ( {
296+ objectType : 'Account' ,
297+ schema : salesforceAccount ,
298+ relationalSelect : salesforceAccountRelationalSelect ,
299+ } ) ,
258300 create : request ( ( { Account } : SalesforceAccountCreate ) => ( {
259301 url : `/sobjects/Account` ,
260302 method : 'POST' ,
@@ -282,6 +324,10 @@ export const client = {
282324 objectType : 'Opportunity' ,
283325 schema : salesforceOpportunity ,
284326 } ) ,
327+ batchRead : query . batchRead ( {
328+ objectType : 'Opportunity' ,
329+ schema : salesforceOpportunity ,
330+ } ) ,
285331 create : request ( ( { Opportunity } : SalesforceOpportunityCreate ) => ( {
286332 url : `/sobjects/Opportunity` ,
287333 method : 'POST' ,
@@ -309,6 +355,10 @@ export const client = {
309355 objectType : 'Lead' ,
310356 schema : salesforceLead ,
311357 } ) ,
358+ batchRead : query . batchRead < typeof salesforceLead > ( {
359+ objectType : 'Lead' ,
360+ schema : salesforceLead ,
361+ } ) ,
312362 create : request ( ( { Lead } : SalesforceLeadCreate ) => ( {
313363 url : `/sobjects/Lead` ,
314364 method : 'POST' ,
@@ -338,6 +388,11 @@ export const client = {
338388 schema : salesforceNote ,
339389 relationalSelect : salesforceNoteRelationalSelect ,
340390 } ) ,
391+ batchRead : query . batchRead < typeof salesforceNote > ( {
392+ objectType : 'Note' ,
393+ schema : salesforceNote ,
394+ relationalSelect : salesforceNoteRelationalSelect ,
395+ } ) ,
341396 create : request ( ( { Note } : SalesforceNoteCreate ) => ( {
342397 url : `/sobjects/Note` ,
343398 method : 'POST' ,
@@ -367,6 +422,11 @@ export const client = {
367422 schema : salesforceContentNote ,
368423 relationalSelect : salesforceContentNoteRelationalSelect ,
369424 } ) ,
425+ batchRead : query . batchRead < typeof salesforceContentNote > ( {
426+ objectType : 'ContentNote' ,
427+ schema : salesforceContentNote ,
428+ relationalSelect : salesforceContentNoteRelationalSelect ,
429+ } ) ,
370430 create : request ( ( { ContentNote } : SalesforceContentNoteCreate ) => ( {
371431 url : `/sobjects/ContentNote` ,
372432 method : 'POST' ,
@@ -411,6 +471,11 @@ export const client = {
411471 schema : salesforceTask ,
412472 relationalSelect : salesforceTaskRelationalSelect ,
413473 } ) ,
474+ batchRead : query . batchRead < typeof salesforceTask > ( {
475+ objectType : 'Task' ,
476+ schema : salesforceTask ,
477+ relationalSelect : salesforceTaskRelationalSelect ,
478+ } ) ,
414479 create : request ( ( { Task } : SalesforceTaskCreate ) => ( {
415480 url : `/sobjects/Task` ,
416481 method : 'POST' ,
@@ -440,6 +505,11 @@ export const client = {
440505 schema : salesforceEvent ,
441506 relationalSelect : salesforceEventRelationalSelect ,
442507 } ) ,
508+ batchRead : query . batchRead < typeof salesforceEvent > ( {
509+ objectType : 'Event' ,
510+ schema : salesforceEvent ,
511+ relationalSelect : salesforceEventRelationalSelect ,
512+ } ) ,
443513 create : request ( ( { Event } : SalesforceEventCreate ) => ( {
444514 url : `/sobjects/Event` ,
445515 method : 'POST' ,
@@ -467,6 +537,10 @@ export const client = {
467537 objectType : 'EventRelation' ,
468538 schema : salesforceEventRelation ,
469539 } ) ,
540+ batchRead : query . batchRead < typeof salesforceEventRelation > ( {
541+ objectType : 'EventRelation' ,
542+ schema : salesforceEventRelation ,
543+ } ) ,
470544 create : request ( ( { EventRelation } : SalesforceEventRelationCreate ) => ( {
471545 url : `/sobjects/EventRelation` ,
472546 method : 'POST' ,
@@ -496,6 +570,11 @@ export const client = {
496570 schema : salesforceEmailMessage ,
497571 relationalSelect : salesforceEmailMessageRelationalSelect ,
498572 } ) ,
573+ batchRead : query . batchRead < typeof salesforceEmailMessage > ( {
574+ objectType : 'EmailMessage' ,
575+ schema : salesforceEmailMessage ,
576+ relationalSelect : salesforceEmailMessageRelationalSelect ,
577+ } ) ,
499578 create : request ( ( { EmailMessage } : SalesforceEmailMessageCreate ) => ( {
500579 url : `/sobjects/EmailMessage` ,
501580 method : 'POST' ,
@@ -523,6 +602,10 @@ export const client = {
523602 objectType : 'EmailMessageRelation' ,
524603 schema : salesforceEmailMessageRelation ,
525604 } ) ,
605+ batchRead : query . batchRead < typeof salesforceEmailMessageRelation > ( {
606+ objectType : 'EmailMessageRelation' ,
607+ schema : salesforceEmailMessageRelation ,
608+ } ) ,
526609 create : request (
527610 ( { EmailMessageRelation } : SalesforceEmailMessageRelationCreate ) => ( {
528611 url : `/sobjects/EmailMessageRelation` ,
0 commit comments