]> CyberLeo.Net >> Repos - Github/sugarcrm.git/blob - service/example/test.html
Release 6.2.0
[Github/sugarcrm.git] / service / example / test.html
1 /*********************************************************************************
2  * SugarCRM Community Edition is a customer relationship management program developed by
3  * SugarCRM, Inc. Copyright (C) 2004-2011 SugarCRM Inc.
4  * 
5  * This program is free software; you can redistribute it and/or modify it under
6  * the terms of the GNU Affero General Public License version 3 as published by the
7  * Free Software Foundation with the addition of the following permission added
8  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
9  * IN WHICH THE COPYRIGHT IS OWNED BY SUGARCRM, SUGARCRM DISCLAIMS THE WARRANTY
10  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
11  * 
12  * This program is distributed in the hope that it will be useful, but WITHOUT
13  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
14  * FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public License for more
15  * details.
16  * 
17  * You should have received a copy of the GNU Affero General Public License along with
18  * this program; if not, see http://www.gnu.org/licenses or write to the Free
19  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20  * 02110-1301 USA.
21  * 
22  * You can contact SugarCRM, Inc. headquarters at 10050 North Wolfe Road,
23  * SW2-130, Cupertino, CA 95014, USA. or at email address contact@sugarcrm.com.
24  * 
25  * The interactive user interfaces in modified source and object code versions
26  * of this program must display Appropriate Legal Notices, as required under
27  * Section 5 of the GNU Affero General Public License version 3.
28  * 
29  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
30  * these Appropriate Legal Notices must retain the display of the "Powered by
31  * SugarCRM" logo. If the display of the logo is not reasonably feasible for
32  * technical reasons, the Appropriate Legal Notices must display the words
33  * "Powered by SugarCRM".
34  ********************************************************************************/
35
36 <!-- Dependency -->
37 <script src="http://yui.yahooapis.com/2.6.0/build/yahoo/yahoo-min.js"></script>
38 <!-- Used for Custom Events and event listener bindings -->
39 <script src="http://yui.yahooapis.com/2.6.0/build/event/event-min.js"></script>
40 <!-- Source file -->
41 <script src="http://yui.yahooapis.com/2.6.0/build/connection/connection-min.js"></script>
42 <script src="http://yui.yahooapis.com/2.6.0/build/json/json-min.js"></script>
43 <script>
44 var SugarRest = function(){}
45
46 SugarRest.callCount = -1;
47 SugarRest.startTest = function(name, password){
48         SugarRest.callCount = 1;
49         SugarRest.login(name, password, 'JAVASCRIPT TEST');
50 }
51 SugarRest.test = function(o){
52         data = SugarRest.logResponse(o);
53         switch(SugarRest.callCount){
54                 case 1:
55                         SugarRest.callCount++;
56                         SugarRest.getServerInfo();
57                         SugarRest.session = data['id'];
58                         break;
59                 case  2:
60                         SugarRest.callCount++;
61                         SugarRest.getUserId();
62                         break;
63                 case  3:
64                         SugarRest.callCount++;
65                         SugarRest.getEntry('Contacts', '17700cb1-9da0-f511-f9d7-490b635b9ead');
66                         break;
67                 case  4:
68                         SugarRest.callCount++;
69                         SugarRest.getEntryList('Contacts');
70                         break;
71                 case  5:
72                         SugarRest.callCount++;
73                         SugarRest.getModuleFields('Contacts', []);
74                         break;
75                 case  6:
76                         SugarRest.callCount++;
77                         SugarRest.getEntries('Contacts', ['17700cb1-9da0-f511-f9d7-490b635b9ead', '177cf935-e488-04c3-7af3-490b632b4ab0']);
78                         break;
79                 case  7:
80                         SugarRest.callCount++;
81                         SugarRest.setRelationship('Accounts', 'mastd368-c7er-cof8-16pu-47d57b16pets', 'contacts', ['2f043319-7cb0-6bfa-75d3-490b63fa6c08', 'c57d7598-42e6-cca8-a302-490b63118b48']);
82                         break;
83                 case  8:
84                         SugarRest.callCount++;
85                         SugarRest.setRelationships(['Accounts', 'Contacts'], ['mastd368-c7er-cof8-16pu-47d57b16pets', '2f043319-7cb0-6bfa-75d3-490b63fa6c08'], ['contacts', 'opportunities'], [['2f043319-7cb0-6bfa-75d3-490b63fa6c08'], ['52acdc25-6a6e-a574-6936-490b63fbc1df']]);
86                         break;
87                 case  9:
88                         SugarRest.callCount++;
89                         SugarRest.getRelationships('Accounts', 'mastd368-c7er-cof8-16pu-47d57b16pets', 'contacts', '', ['first_name', 'last_name', 'primary_address_city'], [{'name' : 'opportunities', 'value' : ['name', 'type', 'lead_source']}, {'name' : 'email_addresses', 'value' : ['id', 'email_address', 'opt_out', 'primary_address']}], 0);
90                         break;
91                 case  10:
92                         SugarRest.callCount++;
93                         SugarRest.setEntry('Accounts', [{'name' : 'city', 'value' : 'SFO'},
94                                                                                    {'name' : 'name', 'value' : 'DCE Puppet Master111'}]);
95                         break;
96                 case  11:
97                         SugarRest.callCount++;
98                         SugarRest.setEntries('Accounts', [[{'name' : 'city', 'value' : 'SFO'},
99                                                                                    {'name' : 'name', 'value' : 'Acc1'}], [{'name' : 'city', 'value' : 'SFO'},
100                                                                                    {'name' : 'name', 'value' : 'Acc2'}]]);
101                         break;
102                 case  12:
103                         SugarRest.callCount++;
104                         SugarRest.seamlessLogin();
105                         break;
106                 case  13:
107                         SugarRest.callCount++;
108                         SugarRest.setNoteAttachment({'id' : 'bb79c0f3-78e1-c6fc-2c41-490b636653c0', 'related_module_id' : '3d921d14-047f-cc7d-1988-490b63592ae8', 'related_module_name' : 'Accounts'});
109                         break;
110                 case  14:
111                         SugarRest.callCount++;
112                         SugarRest.getNoteAttachment('bb79c0f3-78e1-c6fc-2c41-490b636653c0');
113                         break;
114                 case  15:
115                         SugarRest.callCount++;
116                         SugarRest.getDocumentRevision('ab18578e-17f5-5fc0-96ba-4925a9baaa20');
117                         break;
118                 case  16:
119                         SugarRest.callCount++;
120                         SugarRest.search('admin', '21232f297a57a5a743894a0e4a801fc3', 'a', ['Accounts', 'Contacts'], 0, 5);
121                         break;
122                         /*
123                 case  17:
124                         SugarRest.callCount++;
125                         SugarRest.setDocumentRevision({'id' : '8d7f0917-19d3-9f88-80d7-49121ddb62e2','document_name' : 'test doc',
126                                                                                                                                                                                          'revision' : 'D',
127                                                                                                                                                                                          'filename' : 'code1.txt',
128                                                                                                                                                                                          'file' : 'JHFzID0gJyc7DQppZiAoaXNzZXQoJF9TRVJWRVJbJ1FVRVJZX1NUUklORyddKSkgew0KCSRxcyA9ICRfU0VSVkVSWydRVUVSWV9TVFJJTkcnXTsNCn0gZWxzZWlmIChpc3NldCgkSFRUUF9TRVJWRVJfVkFSU1snUVVFUllfU1RSSU5HJ10pKSB7DQoJJHFzID0gJEhUVFBfU0VSVkVSX1ZBUlNbJ1FVRVJZX1NUUklORyddOw0KfSBlbHNlIHsNCgkkcXMgPSAnJzsNCn0NCg0KJHQxID0gc3RydG90aW1lKCJub3ciKTsNCg0KaWYgKGVyZWcoJ3dzZGwnLCAkcXMpICl7DQoJZ2xvYmFsICRzdWdhcl9jb25maWc7DQoJJHVwbG9hZERpciA9ICRzdWdhcl9jb25maWdbJ3VwbG9hZF9kaXInXTsNCgkkd3NkbFVSTCA9ICRzdWdhcl9jb25maWdbJ3NpdGVfdXJsJ10uJy9zb2FwLnBocD93c2RsJzsNCgkkd3NkbENhY2hlRmlsZSA9ICR1cGxvYWREaXIuJy93c2RsY2FjaGUtJyAuIG1kNSgkd3NkbFVSTCk7DQoJaWYoZmlsZV9leGlzdHMoJHdzZGxDYWNoZUZpbGUpKSB7CQ0KCSAgICBpZigkZmggPSBAc3VnYXJfZm9wZW4oJHdzZGxDYWNoZUZpbGUsICJyIikpIHsNCgkgICAgCSRjb250ZW50cyA9IGZyZWFkKCRmaCwgZmlsZXNpemUoJHdzZGxDYWNoZUZpbGUpKTsNCgkgICAgCWZjbG9zZSgkZmgpOw0KCQkJaGVhZGVyKCJDb250ZW50LVR5cGU6IHRleHQveG1sOyBjaGFyc2V0PUlTTy04ODU5LTFcclxuIik7DQoJCQlwcmludCAkY29udGVudHM7CSAgICAJDQoJICAgIH0gLy8gaWYJCQ0KCX0gZWxzZSB7DQoJCSRzZXJ2ZXItPnNlcnZpY2UoJEhUVFBfUkFXX1BPU1RfREFUQSk7DQoJICAgIGlmKCRmaCA9IEBzdWdhcl9mb3Blbigkd3NkbENhY2hlRmlsZSwgInciKSkgew0KCSAgICAJZnB1dHMoJGZoLCBvYl9nZXRfY29udGVudHMoKSk7DQoJICAgIAlmY2xvc2UoJGZoKTsNCgkgICAgfSAvLyBpZg0KCX0NCn0gZWxzZSB7DQoJJEdMT0JBTFNbJ2xvZyddLT5kZWJ1ZygiZGF0YSA9ICIgLiAkSFRUUF9SQVdfUE9TVF9EQVRBKTsNCgkkc2VydmVyLT5zZXJ2aWNlKCRIVFRQX1JBV19QT1NUX0RBVEEpOw0KfQ0KDQoNCg0KDQoJCQlpZiAoaXNzZXQoJHRoaXMtPm1ldGhvZHBhcmFtcykgJiYgaXNzZXQoJHRoaXMtPm1ldGhvZHBhcmFtc1snc2Vzc2lvbiddKSkgew0KCQkJCSRHTE9CQUxTWydsb2cnXS0+ZGVidWcoIkluIHNlcnZpY2UsIGRhdGEgPSAiIC4gJHRoaXMtPm1ldGhvZHBhcmFtc1snc2Vzc2lvbiddKTsNCgkJCX0NCg=='});
129                         break;
130                         */
131         }
132
133 }
134
135 console = false;
136 if(!console){
137         console = {};
138         console.log = function(){
139
140         }
141 }
142
143 SugarRest.getRequestData = function(method_name, data) {
144         var returndata = 'method=' + method_name + '&input_type=json&response_type=json';
145         if (data != '') {
146                 returndata = returndata + '&rest_data=' + data;
147         }
148         return returndata
149 }
150 SugarRest.logResponse = function(o){
151
152         data = YAHOO.lang.JSON.parse(o.responseText);
153         console.log(data);
154         return data;
155 }
156
157 SugarRest.getServerInfo =  function(){
158         console.log('Getting Server Info');
159         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php' , {success:SugarRest.test, failure:SugarRest.test}, SugarRest.getRequestData('get_server_info'));
160 }
161
162 SugarRest.getModuleFields =  function(module, fields){
163         console.log('Getting Server Info');
164         var data = [SugarRest.session, module, fields];
165         m = YAHOO.lang.JSON.stringify(data);
166         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php' , {success:SugarRest.test, failure:SugarRest.test}, SugarRest.getRequestData('get_module_fields', m));
167 }
168
169 SugarRest.login =  function(name, password, application){
170         console.log('Logging In');
171         var loginData = [{
172                 user_name: 'admin',
173                 password: '21232f297a57a5a743894a0e4a801fc3'
174         },'javascriptTest'];
175         m = YAHOO.lang.JSON.stringify(loginData);
176         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php' , {success:SugarRest.test, failure:SugarRest.test}, SugarRest.getRequestData('login', m));
177 }
178
179 SugarRest.getUserId =  function(){
180         console.log('Getting User Id ');
181         m = YAHOO.lang.JSON.stringify(SugarRest.session);
182         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php' , {success:SugarRest.test, failure:SugarRest.test}, SugarRest.getRequestData('get_user_id', m));
183 }
184
185
186 SugarRest.getEntryList = function(module){
187         var data = [SugarRest.session, module, "", '', 0, [], [{
188                 'name': 'email_addresses',
189                 'value': ['id', 'email_address', 'opt_out', 'primary_address',]
190         }], 10, 0];
191         m = YAHOO.lang.JSON.stringify(data);
192         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php', {
193                 success: SugarRest.test,
194                 failure: SugarRest.test
195         }, SugarRest.getRequestData('get_entry_list', m));
196 }
197
198
199 SugarRest.getEntry = function(module, id){
200         var data = [SugarRest.session, module, id, ['last_name', 'email1', 'date_modified','description'], [{
201                 'name': 'email_addresses',
202                 'value': ['id', 'email_address', 'opt_out', 'primary_address',]
203         }]];
204         m = YAHOO.lang.JSON.stringify(data);
205         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php', {
206                 success: SugarRest.test,
207                 failure: SugarRest.test
208         }, SugarRest.getRequestData('get_entry', m));
209 }
210
211 SugarRest.getEntries = function(module, ids){
212         var data = [SugarRest.session, module, ids, ['last_name', 'email1', 'date_modified','description'], [{
213                 'name': 'email_addresses',
214                 'value': ['id', 'email_address', 'opt_out', 'primary_address',]
215         }]];
216         m = YAHOO.lang.JSON.stringify(data);
217         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php', {
218                 success: SugarRest.test,
219                 failure: SugarRest.test
220         }, SugarRest.getRequestData('get_entries', m));
221 }
222
223 SugarRest.setRelationship = function(module, module_id, link_field_name, related_ids){
224         var data = [SugarRest.session, module, module_id, link_field_name, related_ids];
225         m = YAHOO.lang.JSON.stringify(data);
226         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php', {
227                 success: SugarRest.test,
228                 failure: SugarRest.test
229         }, SugarRest.getRequestData('set_relationship', m));
230 }
231
232 SugarRest.setRelationships = function(modules, module_ids, link_field_names, related_ids){
233         var data = [SugarRest.session, modules, module_ids, link_field_names, related_ids];
234         m = YAHOO.lang.JSON.stringify(data);
235         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php', {
236                 success: SugarRest.test,
237                 failure: SugarRest.test
238         }, SugarRest.getRequestData('set_relationships', m));
239 }
240
241 SugarRest.getRelationships = function(module, module_id, link_field_name, related_module_query, related_fields, related_module_link_name_to_fields_array, deleted){
242         var data = [SugarRest.session, module, module_id, link_field_name, related_module_query, related_fields, related_module_link_name_to_fields_array, deleted];
243         m = YAHOO.lang.JSON.stringify(data);
244         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php', {
245                 success: SugarRest.test,
246                 failure: SugarRest.test
247         }, SugarRest.getRequestData('get_relationships', m));
248 }
249
250 SugarRest.setEntry = function(module, name_value_list){
251         var data = [SugarRest.session, module, name_value_list];
252         m = YAHOO.lang.JSON.stringify(data);
253         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php', {
254                 success: SugarRest.test,
255                 failure: SugarRest.test
256         }, SugarRest.getRequestData('set_entry', m));
257 }
258
259 SugarRest.setEntries = function(module, name_value_lists){
260         var data = [SugarRest.session, module, name_value_lists];
261         m = YAHOO.lang.JSON.stringify(data);
262         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php', {
263                 success: SugarRest.test,
264                 failure: SugarRest.test
265         }, SugarRest.getRequestData('set_entries', m));
266 }
267
268 SugarRest.seamlessLogin = function(){
269         var data = [SugarRest.session];
270         m = YAHOO.lang.JSON.stringify(data);
271         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php', {
272                 success: SugarRest.test,
273                 failure: SugarRest.test
274         }, SugarRest.getRequestData('seamless_login', m));
275 }
276
277 SugarRest.setNoteAttachment = function(noteObject){
278         var data = [SugarRest.session, noteObject];
279         m = YAHOO.lang.JSON.stringify(data);
280         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php', {
281                 success: SugarRest.test,
282                 failure: SugarRest.test
283         }, SugarRest.getRequestData('set_note_attachment', m));
284 }
285
286 SugarRest.getNoteAttachment = function(noteId){
287         var data = [SugarRest.session, noteId];
288         m = YAHOO.lang.JSON.stringify(data);
289         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php', {
290                 success: SugarRest.test,
291                 failure: SugarRest.test
292         }, SugarRest.getRequestData('get_note_attachment', m));
293 }
294
295 SugarRest.setDocumentRevision = function(revisionObject){
296         var data = [SugarRest.session, revisionObject];
297         m = YAHOO.lang.JSON.stringify(data);
298         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php', {
299                 success: SugarRest.test,
300                 failure: SugarRest.test
301         }, SugarRest.getRequestData('set_document_revision', m));
302 }
303
304 SugarRest.getDocumentRevision = function(docRevId){
305         var data = [SugarRest.session, docRevId];
306         m = YAHOO.lang.JSON.stringify(data);
307         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php', {
308                 success: SugarRest.test,
309                 failure: SugarRest.test
310         }, SugarRest.getRequestData('get_document_revision', m));
311 }
312
313 SugarRest.search = function(username, password, search_string, modules_to_search, offset, maxresults){
314         var data = [username, password, search_string, modules_to_search, offset, maxresults];
315         m = YAHOO.lang.JSON.stringify(data);
316         YAHOO.util.Connect.asyncRequest('POST', 'v2/rest.php', {
317                 success: SugarRest.test,
318                 failure: SugarRest.test
319         }, SugarRest.getRequestData('search_by_module', m));
320 }
321 SugarRest.startTest();
322 </script>
323
324