restforce-db 2.5.0 → 2.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (19) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +16 -0
  3. data/lib/restforce/db/associator.rb +21 -9
  4. data/lib/restforce/db/initializer.rb +4 -4
  5. data/lib/restforce/db/model.rb +52 -0
  6. data/lib/restforce/db/synchronizer.rb +12 -12
  7. data/lib/restforce/db/timestamp_cache.rb +1 -1
  8. data/lib/restforce/db/version.rb +1 -1
  9. data/lib/restforce/db/worker.rb +21 -22
  10. data/test/cassettes/Restforce_DB_Associator/_run/given_a_BelongsTo_association/given_another_record_for_association/when_the_Salesforce_association_is_out_of_date/updates_the_association_ID_in_Salesforce.yml +188 -112
  11. data/test/cassettes/Restforce_DB_Associator/_run/given_a_BelongsTo_association/given_another_record_for_association/when_the_database_association_is_out_of_date/updates_the_associated_record_in_the_database.yml +175 -99
  12. data/test/cassettes/Restforce_DB_Model/given_a_database_model_which_includes_the_module/_force_sync_/given_a_previously-synchronized_record_for_a_mapped_model/force-updates_both_synchronized_records.yml +288 -0
  13. data/test/cassettes/Restforce_DB_Model/given_a_database_model_which_includes_the_module/_force_sync_/given_an_unsynchronized_record_for_a_mapped_model/creates_a_matching_record_in_Salesforce.yml +251 -0
  14. data/test/cassettes/Restforce_DB_Worker/a_race_condition_during_synchronization/does_not_change_the_user-entered_name_on_the_database_record.yml +512 -0
  15. data/test/cassettes/Restforce_DB_Worker/a_race_condition_during_synchronization/overrides_the_stale-but-more-recent_name_on_the_Salesforce.yml +551 -0
  16. data/test/lib/restforce/db/model_test.rb +86 -14
  17. data/test/lib/restforce/db/timestamp_cache_test.rb +5 -4
  18. data/test/lib/restforce/db/worker_test.rb +63 -0
  19. metadata +7 -2
@@ -0,0 +1,551 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://<host>/services/oauth2/token
6
+ body:
7
+ encoding: US-ASCII
8
+ string: grant_type=password&client_id=<client_id>&client_secret=<client_secret>&username=<username>&password=<password><security_token>
9
+ headers:
10
+ User-Agent:
11
+ - Faraday v0.9.1
12
+ Content-Type:
13
+ - application/x-www-form-urlencoded
14
+ Accept-Encoding:
15
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
16
+ Accept:
17
+ - "*/*"
18
+ response:
19
+ status:
20
+ code: 200
21
+ message: OK
22
+ headers:
23
+ Date:
24
+ - Thu, 18 Jun 2015 21:19:58 GMT
25
+ Set-Cookie:
26
+ - BrowserId=DPMvtTj_RpeWLZApqUHKPg;Path=/;Domain=.salesforce.com;Expires=Mon,
27
+ 17-Aug-2015 21:19:58 GMT
28
+ Expires:
29
+ - Thu, 01 Jan 1970 00:00:00 GMT
30
+ Pragma:
31
+ - no-cache
32
+ Cache-Control:
33
+ - no-cache, no-store
34
+ Content-Type:
35
+ - application/json;charset=UTF-8
36
+ Transfer-Encoding:
37
+ - chunked
38
+ body:
39
+ encoding: ASCII-8BIT
40
+ string: '{"id":"https://login.salesforce.com/id/00D1a000000H3O9EAK/0051a000000UGT8AAO","issued_at":"1434662398756","token_type":"Bearer","instance_url":"https://<host>","signature":"6hKUZnFPS25rfty5MRRaR9C2B9d8w/GkXpLP7oGPIok=","access_token":"00D1a000000H3O9!AQ4AQMIiowitx1OZ30nT1yLacEm4Ugw4j582Bro6xJOU7OOWfOJISGrWfdN.JIWTCleDrkoRt21t3bXGaSDTPfiqhjk5JS3n"}'
41
+ http_version:
42
+ recorded_at: Thu, 18 Jun 2015 21:19:58 GMT
43
+ - request:
44
+ method: get
45
+ uri: https://<host>/services/data/<api_version>/query?q=select%20Id,%20SystemModstamp,%20LastModifiedById,%20Name,%20Example_Field__c%20from%20CustomObject__c%20where%20SystemModstamp%20%3C%202015-06-18T21:19:57Z
46
+ body:
47
+ encoding: US-ASCII
48
+ string: ''
49
+ headers:
50
+ User-Agent:
51
+ - Faraday v0.9.1
52
+ Authorization:
53
+ - OAuth 00D1a000000H3O9!AQ4AQMIiowitx1OZ30nT1yLacEm4Ugw4j582Bro6xJOU7OOWfOJISGrWfdN.JIWTCleDrkoRt21t3bXGaSDTPfiqhjk5JS3n
54
+ Accept-Encoding:
55
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
56
+ Accept:
57
+ - "*/*"
58
+ response:
59
+ status:
60
+ code: 200
61
+ message: OK
62
+ headers:
63
+ Date:
64
+ - Thu, 18 Jun 2015 21:19:59 GMT
65
+ Set-Cookie:
66
+ - BrowserId=Y9rtuvvGQKyybQDjWgdMnQ;Path=/;Domain=.salesforce.com;Expires=Mon,
67
+ 17-Aug-2015 21:19:59 GMT
68
+ Expires:
69
+ - Thu, 01 Jan 1970 00:00:00 GMT
70
+ Sforce-Limit-Info:
71
+ - api-usage=166/15000
72
+ Content-Type:
73
+ - application/json;charset=UTF-8
74
+ Transfer-Encoding:
75
+ - chunked
76
+ body:
77
+ encoding: ASCII-8BIT
78
+ string: '{"totalSize":0,"done":true,"records":[]}'
79
+ http_version:
80
+ recorded_at: Thu, 18 Jun 2015 21:19:59 GMT
81
+ - request:
82
+ method: get
83
+ uri: https://<host>/services/data/<api_version>/sobjects/CustomObject__c/describe
84
+ body:
85
+ encoding: US-ASCII
86
+ string: ''
87
+ headers:
88
+ User-Agent:
89
+ - Faraday v0.9.1
90
+ Authorization:
91
+ - OAuth 00D1a000000H3O9!AQ4AQMIiowitx1OZ30nT1yLacEm4Ugw4j582Bro6xJOU7OOWfOJISGrWfdN.JIWTCleDrkoRt21t3bXGaSDTPfiqhjk5JS3n
92
+ Accept-Encoding:
93
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
94
+ Accept:
95
+ - "*/*"
96
+ response:
97
+ status:
98
+ code: 200
99
+ message: OK
100
+ headers:
101
+ Date:
102
+ - Thu, 18 Jun 2015 21:20:00 GMT
103
+ Set-Cookie:
104
+ - BrowserId=HoxFMjzRQwyYKFZU_21U-g;Path=/;Domain=.salesforce.com;Expires=Mon,
105
+ 17-Aug-2015 21:20:00 GMT
106
+ Expires:
107
+ - Thu, 01 Jan 1970 00:00:00 GMT
108
+ Sforce-Limit-Info:
109
+ - api-usage=168/15000
110
+ Org.eclipse.jetty.server.include.etag:
111
+ - cdc3a566
112
+ Last-Modified:
113
+ - Sat, 13 Jun 2015 07:59:59 GMT
114
+ Content-Type:
115
+ - application/json;charset=UTF-8
116
+ Etag:
117
+ - cdc3a56-gzip"
118
+ Transfer-Encoding:
119
+ - chunked
120
+ body:
121
+ encoding: ASCII-8BIT
122
+ string: '{"activateable":false,"childRelationships":[{"cascadeDelete":true,"childSObject":"AttachedContentDocument","deprecatedAndHidden":false,"field":"LinkedEntityId","relationshipName":"AttachedContentDocuments","restrictedDelete":false},{"cascadeDelete":true,"childSObject":"Attachment","deprecatedAndHidden":false,"field":"ParentId","relationshipName":"Attachments","restrictedDelete":false},{"cascadeDelete":true,"childSObject":"CollaborationGroupRecord","deprecatedAndHidden":false,"field":"RecordId","relationshipName":"RecordAssociatedGroups","restrictedDelete":false},{"cascadeDelete":true,"childSObject":"CombinedAttachment","deprecatedAndHidden":false,"field":"ParentId","relationshipName":"CombinedAttachments","restrictedDelete":false},{"cascadeDelete":true,"childSObject":"ContentDocumentLink","deprecatedAndHidden":false,"field":"LinkedEntityId","relationshipName":null,"restrictedDelete":false},{"cascadeDelete":false,"childSObject":"ContentVersion","deprecatedAndHidden":false,"field":"FirstPublishLocationId","relationshipName":null,"restrictedDelete":false},{"cascadeDelete":true,"childSObject":"CustomObjectDetail__c","deprecatedAndHidden":false,"field":"CustomObject__c","relationshipName":"CustomObjectDetails__r","restrictedDelete":false},{"cascadeDelete":true,"childSObject":"EntitySubscription","deprecatedAndHidden":false,"field":"ParentId","relationshipName":"FeedSubscriptionsForEntity","restrictedDelete":false},{"cascadeDelete":false,"childSObject":"FeedComment","deprecatedAndHidden":false,"field":"ParentId","relationshipName":null,"restrictedDelete":false},{"cascadeDelete":true,"childSObject":"FeedItem","deprecatedAndHidden":false,"field":"ParentId","relationshipName":null,"restrictedDelete":false},{"cascadeDelete":true,"childSObject":"Note","deprecatedAndHidden":false,"field":"ParentId","relationshipName":"Notes","restrictedDelete":false},{"cascadeDelete":true,"childSObject":"NoteAndAttachment","deprecatedAndHidden":false,"field":"ParentId","relationshipName":"NotesAndAttachments","restrictedDelete":false},{"cascadeDelete":true,"childSObject":"ProcessInstance","deprecatedAndHidden":false,"field":"TargetObjectId","relationshipName":"ProcessInstances","restrictedDelete":false},{"cascadeDelete":false,"childSObject":"ProcessInstanceHistory","deprecatedAndHidden":false,"field":"TargetObjectId","relationshipName":"ProcessSteps","restrictedDelete":false},{"cascadeDelete":true,"childSObject":"TopicAssignment","deprecatedAndHidden":false,"field":"EntityId","relationshipName":"TopicAssignments","restrictedDelete":false}],"compactLayoutable":true,"createable":true,"custom":true,"customSetting":false,"deletable":true,"deprecatedAndHidden":false,"feedEnabled":false,"fields":[{"autoNumber":false,"byteLength":18,"calculated":false,"calculatedFormula":null,"cascadeDelete":false,"caseSensitive":false,"controllerName":null,"createable":false,"custom":false,"defaultValue":null,"defaultValueFormula":null,"defaultedOnCreate":true,"dependentPicklist":false,"deprecatedAndHidden":false,"digits":0,"displayLocationInDecimal":false,"externalId":false,"filterable":true,"groupable":true,"htmlFormatted":false,"idLookup":true,"inlineHelpText":null,"label":"Record
123
+ ID","length":18,"name":"Id","nameField":false,"namePointing":false,"nillable":false,"permissionable":false,"picklistValues":[],"precision":0,"referenceTo":[],"relationshipName":null,"relationshipOrder":null,"restrictedDelete":false,"restrictedPicklist":false,"scale":0,"soapType":"tns:ID","sortable":true,"type":"id","unique":false,"updateable":false,"writeRequiresMasterRead":false},{"autoNumber":false,"byteLength":18,"calculated":false,"calculatedFormula":null,"cascadeDelete":false,"caseSensitive":false,"controllerName":null,"createable":true,"custom":false,"defaultValue":null,"defaultValueFormula":null,"defaultedOnCreate":true,"dependentPicklist":false,"deprecatedAndHidden":false,"digits":0,"displayLocationInDecimal":false,"externalId":false,"filterable":true,"groupable":true,"htmlFormatted":false,"idLookup":false,"inlineHelpText":null,"label":"Owner
124
+ ID","length":18,"name":"OwnerId","nameField":false,"namePointing":true,"nillable":false,"permissionable":false,"picklistValues":[],"precision":0,"referenceTo":["Group","User"],"relationshipName":"Owner","relationshipOrder":null,"restrictedDelete":false,"restrictedPicklist":false,"scale":0,"soapType":"tns:ID","sortable":true,"type":"reference","unique":false,"updateable":true,"writeRequiresMasterRead":false},{"autoNumber":false,"byteLength":0,"calculated":false,"calculatedFormula":null,"cascadeDelete":false,"caseSensitive":false,"controllerName":null,"createable":false,"custom":false,"defaultValue":null,"defaultValueFormula":null,"defaultedOnCreate":true,"dependentPicklist":false,"deprecatedAndHidden":false,"digits":0,"displayLocationInDecimal":false,"externalId":false,"filterable":true,"groupable":true,"htmlFormatted":false,"idLookup":false,"inlineHelpText":null,"label":"Deleted","length":0,"name":"IsDeleted","nameField":false,"namePointing":false,"nillable":false,"permissionable":false,"picklistValues":[],"precision":0,"referenceTo":[],"relationshipName":null,"relationshipOrder":null,"restrictedDelete":false,"restrictedPicklist":false,"scale":0,"soapType":"xsd:boolean","sortable":true,"type":"boolean","unique":false,"updateable":false,"writeRequiresMasterRead":false},{"autoNumber":false,"byteLength":240,"calculated":false,"calculatedFormula":null,"cascadeDelete":false,"caseSensitive":false,"controllerName":null,"createable":true,"custom":false,"defaultValue":null,"defaultValueFormula":null,"defaultedOnCreate":true,"dependentPicklist":false,"deprecatedAndHidden":false,"digits":0,"displayLocationInDecimal":false,"externalId":false,"filterable":true,"groupable":true,"htmlFormatted":false,"idLookup":true,"inlineHelpText":null,"label":"CustomObject
125
+ Name","length":80,"name":"Name","nameField":true,"namePointing":false,"nillable":true,"permissionable":false,"picklistValues":[],"precision":0,"referenceTo":[],"relationshipName":null,"relationshipOrder":null,"restrictedDelete":false,"restrictedPicklist":false,"scale":0,"soapType":"xsd:string","sortable":true,"type":"string","unique":false,"updateable":true,"writeRequiresMasterRead":false},{"autoNumber":false,"byteLength":0,"calculated":false,"calculatedFormula":null,"cascadeDelete":false,"caseSensitive":false,"controllerName":null,"createable":false,"custom":false,"defaultValue":null,"defaultValueFormula":null,"defaultedOnCreate":true,"dependentPicklist":false,"deprecatedAndHidden":false,"digits":0,"displayLocationInDecimal":false,"externalId":false,"filterable":true,"groupable":false,"htmlFormatted":false,"idLookup":false,"inlineHelpText":null,"label":"Created
126
+ Date","length":0,"name":"CreatedDate","nameField":false,"namePointing":false,"nillable":false,"permissionable":false,"picklistValues":[],"precision":0,"referenceTo":[],"relationshipName":null,"relationshipOrder":null,"restrictedDelete":false,"restrictedPicklist":false,"scale":0,"soapType":"xsd:dateTime","sortable":true,"type":"datetime","unique":false,"updateable":false,"writeRequiresMasterRead":false},{"autoNumber":false,"byteLength":18,"calculated":false,"calculatedFormula":null,"cascadeDelete":false,"caseSensitive":false,"controllerName":null,"createable":false,"custom":false,"defaultValue":null,"defaultValueFormula":null,"defaultedOnCreate":true,"dependentPicklist":false,"deprecatedAndHidden":false,"digits":0,"displayLocationInDecimal":false,"externalId":false,"filterable":true,"groupable":true,"htmlFormatted":false,"idLookup":false,"inlineHelpText":null,"label":"Created
127
+ By ID","length":18,"name":"CreatedById","nameField":false,"namePointing":false,"nillable":false,"permissionable":false,"picklistValues":[],"precision":0,"referenceTo":["User"],"relationshipName":"CreatedBy","relationshipOrder":null,"restrictedDelete":false,"restrictedPicklist":false,"scale":0,"soapType":"tns:ID","sortable":true,"type":"reference","unique":false,"updateable":false,"writeRequiresMasterRead":false},{"autoNumber":false,"byteLength":0,"calculated":false,"calculatedFormula":null,"cascadeDelete":false,"caseSensitive":false,"controllerName":null,"createable":false,"custom":false,"defaultValue":null,"defaultValueFormula":null,"defaultedOnCreate":true,"dependentPicklist":false,"deprecatedAndHidden":false,"digits":0,"displayLocationInDecimal":false,"externalId":false,"filterable":true,"groupable":false,"htmlFormatted":false,"idLookup":false,"inlineHelpText":null,"label":"Last
128
+ Modified Date","length":0,"name":"LastModifiedDate","nameField":false,"namePointing":false,"nillable":false,"permissionable":false,"picklistValues":[],"precision":0,"referenceTo":[],"relationshipName":null,"relationshipOrder":null,"restrictedDelete":false,"restrictedPicklist":false,"scale":0,"soapType":"xsd:dateTime","sortable":true,"type":"datetime","unique":false,"updateable":false,"writeRequiresMasterRead":false},{"autoNumber":false,"byteLength":18,"calculated":false,"calculatedFormula":null,"cascadeDelete":false,"caseSensitive":false,"controllerName":null,"createable":false,"custom":false,"defaultValue":null,"defaultValueFormula":null,"defaultedOnCreate":true,"dependentPicklist":false,"deprecatedAndHidden":false,"digits":0,"displayLocationInDecimal":false,"externalId":false,"filterable":true,"groupable":true,"htmlFormatted":false,"idLookup":false,"inlineHelpText":null,"label":"Last
129
+ Modified By ID","length":18,"name":"LastModifiedById","nameField":false,"namePointing":false,"nillable":false,"permissionable":false,"picklistValues":[],"precision":0,"referenceTo":["User"],"relationshipName":"LastModifiedBy","relationshipOrder":null,"restrictedDelete":false,"restrictedPicklist":false,"scale":0,"soapType":"tns:ID","sortable":true,"type":"reference","unique":false,"updateable":false,"writeRequiresMasterRead":false},{"autoNumber":false,"byteLength":0,"calculated":false,"calculatedFormula":null,"cascadeDelete":false,"caseSensitive":false,"controllerName":null,"createable":false,"custom":false,"defaultValue":null,"defaultValueFormula":null,"defaultedOnCreate":true,"dependentPicklist":false,"deprecatedAndHidden":false,"digits":0,"displayLocationInDecimal":false,"externalId":false,"filterable":true,"groupable":false,"htmlFormatted":false,"idLookup":false,"inlineHelpText":null,"label":"System
130
+ Modstamp","length":0,"name":"SystemModstamp","nameField":false,"namePointing":false,"nillable":false,"permissionable":false,"picklistValues":[],"precision":0,"referenceTo":[],"relationshipName":null,"relationshipOrder":null,"restrictedDelete":false,"restrictedPicklist":false,"scale":0,"soapType":"xsd:dateTime","sortable":true,"type":"datetime","unique":false,"updateable":false,"writeRequiresMasterRead":false},{"autoNumber":false,"byteLength":765,"calculated":false,"calculatedFormula":null,"cascadeDelete":false,"caseSensitive":false,"controllerName":null,"createable":true,"custom":true,"defaultValue":null,"defaultValueFormula":null,"defaultedOnCreate":false,"dependentPicklist":false,"deprecatedAndHidden":false,"digits":0,"displayLocationInDecimal":false,"externalId":false,"filterable":true,"groupable":true,"htmlFormatted":false,"idLookup":false,"inlineHelpText":null,"label":"Example
131
+ Field","length":255,"name":"Example_Field__c","nameField":false,"namePointing":false,"nillable":true,"permissionable":true,"picklistValues":[],"precision":0,"referenceTo":[],"relationshipName":null,"relationshipOrder":null,"restrictedDelete":false,"restrictedPicklist":false,"scale":0,"soapType":"xsd:string","sortable":true,"type":"string","unique":false,"updateable":true,"writeRequiresMasterRead":false},{"autoNumber":false,"byteLength":18,"calculated":false,"calculatedFormula":null,"cascadeDelete":false,"caseSensitive":false,"controllerName":null,"createable":true,"custom":true,"defaultValue":null,"defaultValueFormula":null,"defaultedOnCreate":false,"dependentPicklist":false,"deprecatedAndHidden":false,"digits":0,"displayLocationInDecimal":false,"externalId":false,"filterable":true,"groupable":true,"htmlFormatted":false,"idLookup":false,"inlineHelpText":null,"label":"Friend","length":18,"name":"Friend__c","nameField":false,"namePointing":false,"nillable":true,"permissionable":true,"picklistValues":[],"precision":0,"referenceTo":["Contact"],"relationshipName":"Friend__r","relationshipOrder":null,"restrictedDelete":false,"restrictedPicklist":false,"scale":0,"soapType":"tns:ID","sortable":true,"type":"reference","unique":false,"updateable":true,"writeRequiresMasterRead":false},{"autoNumber":false,"byteLength":0,"calculated":false,"calculatedFormula":null,"cascadeDelete":false,"caseSensitive":false,"controllerName":null,"createable":true,"custom":true,"defaultValue":null,"defaultValueFormula":null,"defaultedOnCreate":true,"dependentPicklist":false,"deprecatedAndHidden":false,"digits":0,"displayLocationInDecimal":false,"externalId":false,"filterable":true,"groupable":true,"htmlFormatted":false,"idLookup":false,"inlineHelpText":null,"label":"Visible","length":0,"name":"Visible__c","nameField":false,"namePointing":false,"nillable":false,"permissionable":true,"picklistValues":[],"precision":0,"referenceTo":[],"relationshipName":null,"relationshipOrder":null,"restrictedDelete":false,"restrictedPicklist":false,"scale":0,"soapType":"xsd:boolean","sortable":true,"type":"boolean","unique":false,"updateable":true,"writeRequiresMasterRead":false}],"keyPrefix":"a00","label":"CustomObject","labelPlural":"CustomObjects","layoutable":true,"listviewable":null,"lookupLayoutable":null,"mergeable":false,"name":"CustomObject__c","queryable":true,"recordTypeInfos":[{"available":true,"defaultRecordTypeMapping":true,"name":"Master","recordTypeId":"012000000000000AAA","urls":{"layout":"/services/data/<api_version>/sobjects/CustomObject__c/describe/layouts/012000000000000AAA"}}],"replicateable":true,"retrieveable":true,"searchLayoutable":true,"searchable":true,"triggerable":true,"undeletable":true,"updateable":true,"urls":{"uiEditTemplate":"https://<host>/{ID}/e","sobject":"/services/data/<api_version>/sobjects/CustomObject__c","quickActions":"/services/data/<api_version>/sobjects/CustomObject__c/quickActions","uiDetailTemplate":"https://<host>/{ID}","describe":"/services/data/<api_version>/sobjects/CustomObject__c/describe","rowTemplate":"/services/data/<api_version>/sobjects/CustomObject__c/{ID}","layouts":"/services/data/<api_version>/sobjects/CustomObject__c/describe/layouts","compactLayouts":"/services/data/<api_version>/sobjects/CustomObject__c/describe/compactLayouts","uiNewRecord":"https://<host>/a00/e"}}'
132
+ http_version:
133
+ recorded_at: Thu, 18 Jun 2015 21:20:00 GMT
134
+ - request:
135
+ method: post
136
+ uri: https://<host>/services/data/<api_version>/sobjects/CustomObject__c
137
+ body:
138
+ encoding: UTF-8
139
+ string: '{"Name":null,"Example_Field__c":null}'
140
+ headers:
141
+ User-Agent:
142
+ - Faraday v0.9.1
143
+ Content-Type:
144
+ - application/json
145
+ Authorization:
146
+ - OAuth 00D1a000000H3O9!AQ4AQMIiowitx1OZ30nT1yLacEm4Ugw4j582Bro6xJOU7OOWfOJISGrWfdN.JIWTCleDrkoRt21t3bXGaSDTPfiqhjk5JS3n
147
+ Accept-Encoding:
148
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
149
+ Accept:
150
+ - "*/*"
151
+ response:
152
+ status:
153
+ code: 201
154
+ message: Created
155
+ headers:
156
+ Date:
157
+ - Thu, 18 Jun 2015 21:20:01 GMT
158
+ Set-Cookie:
159
+ - BrowserId=bfZAkCtHSmKC_j1Cc6kftg;Path=/;Domain=.salesforce.com;Expires=Mon,
160
+ 17-Aug-2015 21:20:01 GMT
161
+ Expires:
162
+ - Thu, 01 Jan 1970 00:00:00 GMT
163
+ Sforce-Limit-Info:
164
+ - api-usage=166/15000
165
+ Location:
166
+ - "/services/data/<api_version>/sobjects/CustomObject__c/a001a000002z7YaAAI"
167
+ Content-Type:
168
+ - application/json;charset=UTF-8
169
+ Transfer-Encoding:
170
+ - chunked
171
+ body:
172
+ encoding: ASCII-8BIT
173
+ string: '{"id":"a001a000002z7YaAAI","success":true,"errors":[]}'
174
+ http_version:
175
+ recorded_at: Thu, 18 Jun 2015 21:20:01 GMT
176
+ - request:
177
+ method: get
178
+ uri: https://<host>/services/data/<api_version>/query?q=select%20Id,%20SystemModstamp,%20LastModifiedById,%20Name,%20Example_Field__c%20from%20CustomObject__c%20where%20Id%20=%20%27a001a000002z7YaAAI%27
179
+ body:
180
+ encoding: US-ASCII
181
+ string: ''
182
+ headers:
183
+ User-Agent:
184
+ - Faraday v0.9.1
185
+ Authorization:
186
+ - OAuth 00D1a000000H3O9!AQ4AQMIiowitx1OZ30nT1yLacEm4Ugw4j582Bro6xJOU7OOWfOJISGrWfdN.JIWTCleDrkoRt21t3bXGaSDTPfiqhjk5JS3n
187
+ Accept-Encoding:
188
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
189
+ Accept:
190
+ - "*/*"
191
+ response:
192
+ status:
193
+ code: 200
194
+ message: OK
195
+ headers:
196
+ Date:
197
+ - Thu, 18 Jun 2015 21:20:02 GMT
198
+ Set-Cookie:
199
+ - BrowserId=b6FsRnYxSCOi28k1g_nHfg;Path=/;Domain=.salesforce.com;Expires=Mon,
200
+ 17-Aug-2015 21:20:02 GMT
201
+ Expires:
202
+ - Thu, 01 Jan 1970 00:00:00 GMT
203
+ Sforce-Limit-Info:
204
+ - api-usage=165/15000
205
+ Content-Type:
206
+ - application/json;charset=UTF-8
207
+ Transfer-Encoding:
208
+ - chunked
209
+ body:
210
+ encoding: ASCII-8BIT
211
+ string: '{"totalSize":1,"done":true,"records":[{"attributes":{"type":"CustomObject__c","url":"/services/data/<api_version>/sobjects/CustomObject__c/a001a000002z7YaAAI"},"Id":"a001a000002z7YaAAI","SystemModstamp":"2015-06-18T21:20:01.000+0000","LastModifiedById":"0051a000000UGT8AAO","Name":"a001a000002z7Ya","Example_Field__c":null}]}'
212
+ http_version:
213
+ recorded_at: Thu, 18 Jun 2015 21:20:03 GMT
214
+ - request:
215
+ method: get
216
+ uri: https://<host>/services/data/<api_version>/query?q=select%20Id,%20SystemModstamp,%20LastModifiedById,%20Name,%20Example_Field__c%20from%20CustomObject__c%20where%20Id%20=%20%27a001a000002z7YaAAI%27
217
+ body:
218
+ encoding: US-ASCII
219
+ string: ''
220
+ headers:
221
+ User-Agent:
222
+ - Faraday v0.9.1
223
+ Authorization:
224
+ - OAuth 00D1a000000H3O9!AQ4AQMIiowitx1OZ30nT1yLacEm4Ugw4j582Bro6xJOU7OOWfOJISGrWfdN.JIWTCleDrkoRt21t3bXGaSDTPfiqhjk5JS3n
225
+ Accept-Encoding:
226
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
227
+ Accept:
228
+ - "*/*"
229
+ response:
230
+ status:
231
+ code: 200
232
+ message: OK
233
+ headers:
234
+ Date:
235
+ - Thu, 18 Jun 2015 21:20:04 GMT
236
+ Set-Cookie:
237
+ - BrowserId=iXWxctLHT5WxqIATZfWL2A;Path=/;Domain=.salesforce.com;Expires=Mon,
238
+ 17-Aug-2015 21:20:04 GMT
239
+ Expires:
240
+ - Thu, 01 Jan 1970 00:00:00 GMT
241
+ Sforce-Limit-Info:
242
+ - api-usage=165/15000
243
+ Content-Type:
244
+ - application/json;charset=UTF-8
245
+ Transfer-Encoding:
246
+ - chunked
247
+ body:
248
+ encoding: ASCII-8BIT
249
+ string: '{"totalSize":1,"done":true,"records":[{"attributes":{"type":"CustomObject__c","url":"/services/data/<api_version>/sobjects/CustomObject__c/a001a000002z7YaAAI"},"Id":"a001a000002z7YaAAI","SystemModstamp":"2015-06-18T21:20:01.000+0000","LastModifiedById":"0051a000000UGT8AAO","Name":"a001a000002z7Ya","Example_Field__c":null}]}'
250
+ http_version:
251
+ recorded_at: Thu, 18 Jun 2015 21:20:04 GMT
252
+ - request:
253
+ method: patch
254
+ uri: https://<host>/services/data/<api_version>/sobjects/CustomObject__c/a001a000002z7YaAAI
255
+ body:
256
+ encoding: UTF-8
257
+ string: '{"Name":"A Stale Synchronized Name"}'
258
+ headers:
259
+ User-Agent:
260
+ - Faraday v0.9.1
261
+ Content-Type:
262
+ - application/json
263
+ Authorization:
264
+ - OAuth 00D1a000000H3O9!AQ4AQMIiowitx1OZ30nT1yLacEm4Ugw4j582Bro6xJOU7OOWfOJISGrWfdN.JIWTCleDrkoRt21t3bXGaSDTPfiqhjk5JS3n
265
+ Accept-Encoding:
266
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
267
+ Accept:
268
+ - "*/*"
269
+ response:
270
+ status:
271
+ code: 204
272
+ message: No Content
273
+ headers:
274
+ Date:
275
+ - Thu, 18 Jun 2015 21:20:05 GMT
276
+ Set-Cookie:
277
+ - BrowserId=EdgDOTWRQkewwU7YXucm5Q;Path=/;Domain=.salesforce.com;Expires=Mon,
278
+ 17-Aug-2015 21:20:05 GMT
279
+ Expires:
280
+ - Thu, 01 Jan 1970 00:00:00 GMT
281
+ Sforce-Limit-Info:
282
+ - api-usage=167/15000
283
+ body:
284
+ encoding: UTF-8
285
+ string: ''
286
+ http_version:
287
+ recorded_at: Thu, 18 Jun 2015 21:20:05 GMT
288
+ - request:
289
+ method: get
290
+ uri: https://<host>/services/data/<api_version>/query?q=select%20Id,%20SystemModstamp,%20LastModifiedById,%20Name,%20Example_Field__c%20from%20CustomObject__c%20where%20SystemModstamp%20%3C%202015-06-18T21:20:06Z%20and%20SystemModstamp%20%3E=%202015-06-18T21:19:57Z
291
+ body:
292
+ encoding: US-ASCII
293
+ string: ''
294
+ headers:
295
+ User-Agent:
296
+ - Faraday v0.9.1
297
+ Authorization:
298
+ - OAuth 00D1a000000H3O9!AQ4AQMIiowitx1OZ30nT1yLacEm4Ugw4j582Bro6xJOU7OOWfOJISGrWfdN.JIWTCleDrkoRt21t3bXGaSDTPfiqhjk5JS3n
299
+ Accept-Encoding:
300
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
301
+ Accept:
302
+ - "*/*"
303
+ response:
304
+ status:
305
+ code: 200
306
+ message: OK
307
+ headers:
308
+ Date:
309
+ - Thu, 18 Jun 2015 21:20:07 GMT
310
+ Set-Cookie:
311
+ - BrowserId=K1bQ02XzTmqXaWvRECD1Bw;Path=/;Domain=.salesforce.com;Expires=Mon,
312
+ 17-Aug-2015 21:20:07 GMT
313
+ Expires:
314
+ - Thu, 01 Jan 1970 00:00:00 GMT
315
+ Sforce-Limit-Info:
316
+ - api-usage=169/15000
317
+ Content-Type:
318
+ - application/json;charset=UTF-8
319
+ Transfer-Encoding:
320
+ - chunked
321
+ body:
322
+ encoding: ASCII-8BIT
323
+ string: '{"totalSize":1,"done":true,"records":[{"attributes":{"type":"CustomObject__c","url":"/services/data/<api_version>/sobjects/CustomObject__c/a001a000002z7YaAAI"},"Id":"a001a000002z7YaAAI","SystemModstamp":"2015-06-18T21:20:05.000+0000","LastModifiedById":"0051a000000UGT8AAO","Name":"A
324
+ Stale Synchronized Name","Example_Field__c":null}]}'
325
+ http_version:
326
+ recorded_at: Thu, 18 Jun 2015 21:20:07 GMT
327
+ - request:
328
+ method: get
329
+ uri: https://<host>/services/data/<api_version>/
330
+ body:
331
+ encoding: US-ASCII
332
+ string: ''
333
+ headers:
334
+ User-Agent:
335
+ - Faraday v0.9.1
336
+ Authorization:
337
+ - OAuth 00D1a000000H3O9!AQ4AQMIiowitx1OZ30nT1yLacEm4Ugw4j582Bro6xJOU7OOWfOJISGrWfdN.JIWTCleDrkoRt21t3bXGaSDTPfiqhjk5JS3n
338
+ Accept-Encoding:
339
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
340
+ Accept:
341
+ - "*/*"
342
+ response:
343
+ status:
344
+ code: 200
345
+ message: OK
346
+ headers:
347
+ Date:
348
+ - Thu, 18 Jun 2015 21:20:08 GMT
349
+ Set-Cookie:
350
+ - BrowserId=SfPYiLmNTj64UjeaGa86pQ;Path=/;Domain=.salesforce.com;Expires=Mon,
351
+ 17-Aug-2015 21:20:08 GMT
352
+ Expires:
353
+ - Thu, 01 Jan 1970 00:00:00 GMT
354
+ Sforce-Limit-Info:
355
+ - api-usage=169/15000
356
+ Content-Type:
357
+ - application/json;charset=UTF-8
358
+ Transfer-Encoding:
359
+ - chunked
360
+ body:
361
+ encoding: ASCII-8BIT
362
+ string: '{"limits":"/services/data/<api_version>/limits","sobjects":"/services/data/<api_version>/sobjects","connect":"/services/data/<api_version>/connect","query":"/services/data/<api_version>/query","theme":"/services/data/<api_version>/theme","queryAll":"/services/data/<api_version>/queryAll","tooling":"/services/data/<api_version>/tooling","chatter":"/services/data/<api_version>/chatter","analytics":"/services/data/<api_version>/analytics","recent":"/services/data/<api_version>/recent","commerce":"/services/data/<api_version>/commerce","licensing":"/services/data/<api_version>/licensing","identity":"https://login.salesforce.com/id/00D1a000000H3O9EAK/0051a000000UGT8AAO","flexiPage":"/services/data/<api_version>/flexiPage","search":"/services/data/<api_version>/search","quickActions":"/services/data/<api_version>/quickActions","wave":"/services/data/<api_version>/wave","appMenu":"/services/data/<api_version>/appMenu"}'
363
+ http_version:
364
+ recorded_at: Thu, 18 Jun 2015 21:20:08 GMT
365
+ - request:
366
+ method: get
367
+ uri: https://login.salesforce.com/id/00D1a000000H3O9EAK/0051a000000UGT8AAO
368
+ body:
369
+ encoding: US-ASCII
370
+ string: ''
371
+ headers:
372
+ User-Agent:
373
+ - Faraday v0.9.1
374
+ Authorization:
375
+ - OAuth 00D1a000000H3O9!AQ4AQMIiowitx1OZ30nT1yLacEm4Ugw4j582Bro6xJOU7OOWfOJISGrWfdN.JIWTCleDrkoRt21t3bXGaSDTPfiqhjk5JS3n
376
+ Accept-Encoding:
377
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
378
+ Accept:
379
+ - "*/*"
380
+ response:
381
+ status:
382
+ code: 200
383
+ message: OK
384
+ headers:
385
+ Date:
386
+ - Thu, 18 Jun 2015 21:20:08 GMT
387
+ - Thu, 18 Jun 2015 21:20:08 GMT
388
+ Set-Cookie:
389
+ - BrowserId=67KGFxGnQim-abKUFiR3kg;Path=/;Domain=.salesforce.com;Expires=Mon,
390
+ 17-Aug-2015 21:20:08 GMT
391
+ Expires:
392
+ - Thu, 01 Jan 1970 00:00:00 GMT
393
+ Content-Type:
394
+ - application/json;charset=UTF-8
395
+ Transfer-Encoding:
396
+ - chunked
397
+ body:
398
+ encoding: ASCII-8BIT
399
+ string: '{"id":"https://login.salesforce.com/id/00D1a000000H3O9EAK/0051a000000UGT8AAO","asserted_user":true,"user_id":"0051a000000UGT8AAO","organization_id":"00D1a000000H3O9EAK","username":"andrew+salesforce@tablexi.com","nick_name":"andrew+salesforce1.42656567106328E12","display_name":"Andrew
400
+ Horner","email":"andrew@tablexi.com","email_verified":true,"first_name":"Andrew","last_name":"Horner","timezone":"America/Los_Angeles","photos":{"picture":"https://c.na24.content.force.com/profilephoto/005/F","thumbnail":"https://c.na24.content.force.com/profilephoto/005/T"},"addr_street":null,"addr_city":null,"addr_state":null,"addr_country":"US","addr_zip":"60661","mobile_phone":null,"mobile_phone_verified":false,"status":{"created_date":null,"body":null},"urls":{"enterprise":"https://<host>/services/Soap/c/{version}/00D1a000000H3O9","metadata":"https://<host>/services/Soap/m/{version}/00D1a000000H3O9","partner":"https://<host>/services/Soap/u/{version}/00D1a000000H3O9","rest":"https://<host>/services/data/v{version}/","sobjects":"https://<host>/services/data/v{version}/sobjects/","search":"https://<host>/services/data/v{version}/search/","query":"https://<host>/services/data/v{version}/query/","recent":"https://<host>/services/data/v{version}/recent/","profile":"https://<host>/0051a000000UGT8AAO","feeds":"https://<host>/services/data/v{version}/chatter/feeds","groups":"https://<host>/services/data/v{version}/chatter/groups","users":"https://<host>/services/data/v{version}/chatter/users","feed_items":"https://<host>/services/data/v{version}/chatter/feed-items"},"active":true,"user_type":"STANDARD","language":"en_US","locale":"en_US","utcOffset":-28800000,"last_modified_date":"2015-03-17T04:14:23.000+0000","is_app_installed":true}'
401
+ http_version:
402
+ recorded_at: Thu, 18 Jun 2015 21:20:08 GMT
403
+ - request:
404
+ method: get
405
+ uri: https://<host>/services/data/<api_version>/query?q=select%20Id,%20SystemModstamp,%20LastModifiedById,%20Name,%20Example_Field__c%20from%20CustomObject__c%20where%20Id%20=%20%27a001a000002z7YaAAI%27
406
+ body:
407
+ encoding: US-ASCII
408
+ string: ''
409
+ headers:
410
+ User-Agent:
411
+ - Faraday v0.9.1
412
+ Authorization:
413
+ - OAuth 00D1a000000H3O9!AQ4AQMIiowitx1OZ30nT1yLacEm4Ugw4j582Bro6xJOU7OOWfOJISGrWfdN.JIWTCleDrkoRt21t3bXGaSDTPfiqhjk5JS3n
414
+ Accept-Encoding:
415
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
416
+ Accept:
417
+ - "*/*"
418
+ response:
419
+ status:
420
+ code: 200
421
+ message: OK
422
+ headers:
423
+ Date:
424
+ - Thu, 18 Jun 2015 21:20:09 GMT
425
+ Set-Cookie:
426
+ - BrowserId=H2ag9mTrR5KWR769TPKJ_A;Path=/;Domain=.salesforce.com;Expires=Mon,
427
+ 17-Aug-2015 21:20:09 GMT
428
+ Expires:
429
+ - Thu, 01 Jan 1970 00:00:00 GMT
430
+ Sforce-Limit-Info:
431
+ - api-usage=168/15000
432
+ Content-Type:
433
+ - application/json;charset=UTF-8
434
+ Transfer-Encoding:
435
+ - chunked
436
+ body:
437
+ encoding: ASCII-8BIT
438
+ string: '{"totalSize":1,"done":true,"records":[{"attributes":{"type":"CustomObject__c","url":"/services/data/<api_version>/sobjects/CustomObject__c/a001a000002z7YaAAI"},"Id":"a001a000002z7YaAAI","SystemModstamp":"2015-06-18T21:20:05.000+0000","LastModifiedById":"0051a000000UGT8AAO","Name":"A
439
+ Stale Synchronized Name","Example_Field__c":null}]}'
440
+ http_version:
441
+ recorded_at: Thu, 18 Jun 2015 21:20:09 GMT
442
+ - request:
443
+ method: patch
444
+ uri: https://<host>/services/data/<api_version>/sobjects/CustomObject__c/a001a000002z7YaAAI
445
+ body:
446
+ encoding: UTF-8
447
+ string: '{"Name":"A New User-Entered Name","Example_Field__c":null}'
448
+ headers:
449
+ User-Agent:
450
+ - Faraday v0.9.1
451
+ Content-Type:
452
+ - application/json
453
+ Authorization:
454
+ - OAuth 00D1a000000H3O9!AQ4AQMIiowitx1OZ30nT1yLacEm4Ugw4j582Bro6xJOU7OOWfOJISGrWfdN.JIWTCleDrkoRt21t3bXGaSDTPfiqhjk5JS3n
455
+ Accept-Encoding:
456
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
457
+ Accept:
458
+ - "*/*"
459
+ response:
460
+ status:
461
+ code: 204
462
+ message: No Content
463
+ headers:
464
+ Date:
465
+ - Thu, 18 Jun 2015 21:20:10 GMT
466
+ Set-Cookie:
467
+ - BrowserId=jheUIXR8Q92JfM29rPztaA;Path=/;Domain=.salesforce.com;Expires=Mon,
468
+ 17-Aug-2015 21:20:10 GMT
469
+ Expires:
470
+ - Thu, 01 Jan 1970 00:00:00 GMT
471
+ Sforce-Limit-Info:
472
+ - api-usage=170/15000
473
+ body:
474
+ encoding: UTF-8
475
+ string: ''
476
+ http_version:
477
+ recorded_at: Thu, 18 Jun 2015 21:20:10 GMT
478
+ - request:
479
+ method: get
480
+ uri: https://<host>/services/data/<api_version>/query?q=select%20Id,%20SystemModstamp,%20LastModifiedById,%20Name,%20Example_Field__c%20from%20CustomObject__c%20where%20Id%20=%20%27a001a000002z7YaAAI%27
481
+ body:
482
+ encoding: US-ASCII
483
+ string: ''
484
+ headers:
485
+ User-Agent:
486
+ - Faraday v0.9.1
487
+ Authorization:
488
+ - OAuth 00D1a000000H3O9!AQ4AQMIiowitx1OZ30nT1yLacEm4Ugw4j582Bro6xJOU7OOWfOJISGrWfdN.JIWTCleDrkoRt21t3bXGaSDTPfiqhjk5JS3n
489
+ Accept-Encoding:
490
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
491
+ Accept:
492
+ - "*/*"
493
+ response:
494
+ status:
495
+ code: 200
496
+ message: OK
497
+ headers:
498
+ Date:
499
+ - Thu, 18 Jun 2015 21:20:11 GMT
500
+ Set-Cookie:
501
+ - BrowserId=yBq_Lmo6TNq9WBxumFbLlw;Path=/;Domain=.salesforce.com;Expires=Mon,
502
+ 17-Aug-2015 21:20:11 GMT
503
+ Expires:
504
+ - Thu, 01 Jan 1970 00:00:00 GMT
505
+ Sforce-Limit-Info:
506
+ - api-usage=173/15000
507
+ Content-Type:
508
+ - application/json;charset=UTF-8
509
+ Transfer-Encoding:
510
+ - chunked
511
+ body:
512
+ encoding: ASCII-8BIT
513
+ string: '{"totalSize":1,"done":true,"records":[{"attributes":{"type":"CustomObject__c","url":"/services/data/<api_version>/sobjects/CustomObject__c/a001a000002z7YaAAI"},"Id":"a001a000002z7YaAAI","SystemModstamp":"2015-06-18T21:20:10.000+0000","LastModifiedById":"0051a000000UGT8AAO","Name":"A
514
+ New User-Entered Name","Example_Field__c":null}]}'
515
+ http_version:
516
+ recorded_at: Thu, 18 Jun 2015 21:20:11 GMT
517
+ - request:
518
+ method: delete
519
+ uri: https://<host>/services/data/<api_version>/sobjects/CustomObject__c/a001a000002z7YaAAI
520
+ body:
521
+ encoding: US-ASCII
522
+ string: ''
523
+ headers:
524
+ User-Agent:
525
+ - Faraday v0.9.1
526
+ Authorization:
527
+ - OAuth 00D1a000000H3O9!AQ4AQMIiowitx1OZ30nT1yLacEm4Ugw4j582Bro6xJOU7OOWfOJISGrWfdN.JIWTCleDrkoRt21t3bXGaSDTPfiqhjk5JS3n
528
+ Accept-Encoding:
529
+ - gzip;q=1.0,deflate;q=0.6,identity;q=0.3
530
+ Accept:
531
+ - "*/*"
532
+ response:
533
+ status:
534
+ code: 204
535
+ message: No Content
536
+ headers:
537
+ Date:
538
+ - Thu, 18 Jun 2015 21:20:12 GMT
539
+ Set-Cookie:
540
+ - BrowserId=XJR5UE-pS9GK4GmqyCNWoA;Path=/;Domain=.salesforce.com;Expires=Mon,
541
+ 17-Aug-2015 21:20:12 GMT
542
+ Expires:
543
+ - Thu, 01 Jan 1970 00:00:00 GMT
544
+ Sforce-Limit-Info:
545
+ - api-usage=173/15000
546
+ body:
547
+ encoding: UTF-8
548
+ string: ''
549
+ http_version:
550
+ recorded_at: Thu, 18 Jun 2015 21:20:12 GMT
551
+ recorded_with: VCR 2.9.3