Changed zouba directory heirarchy.
[ptas] / wrt / misc / rss / preview / script / lib / sapi / Contact.js
diff --git a/wrt/misc/rss/preview/script/lib/sapi/Contact.js b/wrt/misc/rss/preview/script/lib/sapi/Contact.js
deleted file mode 100644 (file)
index 32cf5ed..0000000
+++ /dev/null
@@ -1,407 +0,0 @@
-/**
- * Contact.js
- * 
- * Nokia Web Runtime Service API emulation 
- * WRT v1.1
- * 
- * Copyright 2009 Nokia Corporation. All rights reserved.
-*/
-
-(function(){
-       
-       var provider = 'Service.Contact' ,
-               Interface = 'IDataSource';
-
-       /**
-        * Contact service
-        */
-       var ContactService = function(){
-               this.GetList    = __GetList;
-               this.Add                = __Add;
-               this.Delete     = __Delete;
-               this.Import     = __Import;
-               this.Export     = __Export;
-               this.Organise   = __Organise;
-               this.Cancel     = __Cancel;
-       }
-
-       device.implementation.extend(provider, Interface, new ContactService() );
-
-
-       /******************************************************/        
-       /******************************************************/        
-       /******************************************************/        
-
-       var     context = device.implementation.context,
-               _t = context._t,
-               method = '',
-               result = false,
-               DBase = null;
-       
-       /**
-        * Contact: GetList
-        * @param {Object} criteria
-        * @param {Function} [callback] function for async call (optional)
-        */
-       function __GetList(criteria, callback){
-
-               if ((result = validator.apply('GetList', arguments)) !== false)
-                       return result; 
-       
-               if (!/^(Contact|Group|Database)$/i.test(criteria.Type))
-                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType);
-       
-               if (typeof callback == 'function') {
-                       return context.callAsync(this, arguments.callee, criteria, callback);
-               }
-
-               var returnValue = [], 
-                       match = null,
-                       filter = criteria.Filter || null;
-               DBase = context.getData(provider);
-
-               // Type = Database
-               if (/Database/i.test(criteria.Type)){
-                       returnValue = DBase.Database;
-               } 
-               // Type = Group
-               else if (/Group/i.test(criteria.Type)){
-                       // filter by id
-                       if (filter && filter.id) {
-                               returnValue = findById(DBase.Group, filter.id);
-                               if (returnValue.length == 0)
-                                       return error(device.implementation.ERR_NOT_FOUND);
-                       }
-                       // return all groups 
-                       else {
-                               returnValue = DBase.Group;
-                       }
-               }                               
-               // Type = Contact
-               else if (/Contact/i.test(criteria.Type)){
-
-                       // filter by id
-                       if (filter && filter.id) {
-                               returnValue = findById(DBase.Contact, filter.id); 
-                               if (returnValue.length == 0)
-                                       return error(device.implementation.ERR_NOT_FOUND);
-                       }
-                       // return all contacts 
-                       else {
-                               returnValue = DBase.Contact;
-                       }
-
-                       // unsupported filters 
-                       if (filter 
-                               && (match = context.keys(filter).join().match(/SearchVal|DBUri/ig)) ) {
-                               context.notify(_t('%s:: GetList : filter %s not implemented in preview').arg(provider, match.join()));
-                       }
-                       // unsupported sort                     
-                       if (criteria.Sort) { 
-                               context.notify(_t('%s:: GetList : sort not implemented in preview').arg(provider));
-                       }
-               }
-               return context.Result(context.Iterator(returnValue));
-       }
-                       
-       /**
-        * Contact: Add
-        * @param {Object} criteria
-        * @param {Function} [callback] function for async call (optional)
-        */
-       function __Add(criteria, callback){
-
-               if ((result = validator.apply('Add', arguments)) !== false)
-                       return result; 
-               
-               if (!/^(Contact|Group)$/i.test(criteria.Type))
-                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType2);
-
-               if (typeof callback == 'function') {
-                       return context.callAsync(this, arguments.callee, criteria, callback);
-               }
-
-               DBase = context.getData(provider);
-               var Data = criteria.Data,
-                       item;
-
-               // unsupported!                 
-               if (Data.DBUri) {
-                       context.notify(_t('%s:: Add : Data.DBUri not implemented in preview').arg(provider));
-               }
-
-               // Type = Group
-               if (/Group/i.test(criteria.Type)){
-
-                       if (!Data.GroupLabel)
-                               return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.missingGroupLabel);
-
-                       // update
-                       if (Data.id) {
-                               returnValue = findById(DBase.Group, Data.id); 
-                               if (returnValue.length == 0)
-                                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE);
-                               
-                               returnValue[0].GroupLabel = Data.GroupLabel;
-                               //@todo: group contents!?
-                       }
-                       // new
-                       else {
-                               item = context.extend({}, Data); 
-                               item.id = String(context.getUniqueID());
-                               DBase.Group.push(item);
-                       }
-               } 
-               // Type = Contact
-               else {
-                       // update
-                       if (Data.id) {
-                               returnValue = findById(DBase.Contact, Data.id); 
-                               if (returnValue.length == 0)
-                                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE);
-                               
-                               context.extend(returnValue[0], Data); 
-                       }
-                       // new
-                       else {
-                               item = context.extend({}, Data); 
-                               item.id = String(context.getUniqueID());
-                               DBase.Contact.push(item);
-                       }
-               } 
-               // return success
-               return error(device.implementation.ERR_SUCCESS);
-       }
-                       
-
-       /**
-        * Contact: Delete
-        * @param {Object} criteria
-        * @param {Function} [callback] function for async call (optional)
-        */
-       function __Delete(criteria, callback){
-               
-               if ((result = validator.apply('Delete', arguments)) !== false)
-                       return result; 
-
-               if (!/^(Contact|Group)$/i.test(criteria.Type))
-                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType2);
-
-               var Data = criteria.Data;
-               if (!Data.IdList)
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingIdList);
-               if (typeof Data.IdList != 'object')
-                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badIdList);
-               
-               DBase = context.getData(provider);
-               var type = criteria.Type;
-
-               // unsupported!                 
-               if (Data.DBUri) {
-                       context.notify(_t('%s:: Delete : Data.DBUri not implemented in preview').arg(provider));
-               }
-
-               if (typeof callback == 'function') {
-                       return context.callAsync(this, arguments.callee, criteria, callback);
-               }
-
-               // for both Group & Contact:
-               var i,j,id,item;
-               for (j in Data.IdList) {
-                       id = Data.IdList[j];
-                       for (i in DBase[type]) {
-                               item = DBase[type][i];
-                               if (id == item.id) {
-                                       DBase[type].splice(i, 1);
-                               }
-                       }
-               }
-               // return success
-               return error(device.implementation.ERR_SUCCESS);                                
-       }
-                       
-
-       /**
-        * Contact: Import
-        * @param {Object} criteria
-        * @param {Function} [callback] function for async call (optional)
-        */
-       function __Import(criteria, callback){
-
-               if ((result = validator.apply('Import', arguments)) !== false)
-                       return result; 
-
-               if (!/^(Contact)$/i.test(criteria.Type))
-                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType3);
-
-               var Data = criteria.Data;
-               if (!Data.SourceFile)
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingSourceFile);
-
-               if (typeof callback == 'function') {
-                       return context.callAsync(this, arguments.callee, criteria, callback);
-               }
-
-               context.notify(_t('%s:: Import : not implemented in preview.').arg(provider));
-               return error(device.implementation.ERR_SUCCESS);                
-       }
-                       
-
-       /**
-        * Contact: Export
-        * @param {Object} criteria
-        * @param {Function} [callback] function for async call (optional)
-        */
-       function __Export(criteria, callback){
-
-               if ((result = validator.apply('Export', arguments)) !== false)
-                       return result; 
-
-               if (!/^(Contact)$/i.test(criteria.Type))
-                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badType4);
-
-               var Data = criteria.Data;
-               if (!Data.DestinationFile)
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingDestinationFile);
-
-               if (!Data.id)
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingId);
-
-               if (typeof callback == 'function') {
-                       return context.callAsync(this, arguments.callee, criteria, callback);
-               }
-
-               context.notify(_t('%s:: Export : not implemented in preview.').arg(provider));
-               return error(device.implementation.ERR_SUCCESS);                
-       }
-                       
-
-       /**
-        * Contact: Organise
-        * @param {Object} criteria
-        * @param {Function} [callback] function for async call (optional)
-        */
-       function __Organise(criteria, callback){
-
-               if ((result = validator.apply('Organise', arguments)) !== false)
-                       return result; 
-
-               if (!/^(Group)$/i.test(criteria.Type))
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.badType5);
-
-               var Data = criteria.Data;
-               if (!Data.id)
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingId2);
-
-               if (!Data.IdList)
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingIdList);
-
-               if (typeof Data.IdList != 'object')
-                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badIdList);
-
-               if (!/^(Associate|Disassociate)$/i.test(criteria.OperationType))
-                       return error(device.implementation.ERR_BAD_ARGUMENT_TYPE, msg.badOperationType);
-
-               if (typeof callback == 'function') {
-                       return context.callAsync(this, arguments.callee, criteria, callback);
-               }
-
-               context.notify(_t('%s:: Organise : not implemented in preview.').arg(provider));
-               return error(device.implementation.ERR_SUCCESS);                
-       }
-                       
-
-       /**
-        * Contact: Cancel
-        * @param {Object} criteria
-        */
-       function __Cancel(criteria){
-               method = 'Cancel';
-               if (!criteria || !criteria.TransactionID)
-                       return error(device.implementation.ERR_INVALID_SERVICE_ARGUMENT, msg.missingTID);
-               
-               clearTimeout(criteria.TransactionID);
-               return context.ErrorResult(device.implementation.ERR_SUCCESS);
-       }
-
-       
-       /*******************************
-        * helper functions
-        *******************************/
-       
-       function error(code, msg /*, args...*/){
-
-               var args = ['Contacts',method].concat([].slice.call(arguments,2));
-               msg = msg ? _t().arg.apply(msg,args) : undefined;
-               return context.ErrorResult(code, msg);
-       }
-
-       /**
-        * validate common input arguments
-        * 'this' is string (object) name of calling function
-        * 
-        * @param {arguments} arguments of calling function
-        * @return {Result} Result object if error, false if no error.
-        */
-       function validator() {
-               method = ''+this;
-               var     failed = false,
-                       criteria = arguments[0] || false;
-                       
-               if (!criteria || typeof criteria != 'object' || typeof criteria.Type == 'undefined')
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingType, method);
-
-               if (method == 'GetList') return failed;
-
-               var Data = criteria.Data || false; 
-               if (!Data)
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.missingData, method);
-               if (typeof Data != 'object')
-                       return error(device.implementation.ERR_MISSING_ARGUMENT, msg.badData);
-                
-               return failed;
-       }
-
-
-       function findById(dbase, id){
-               var result = [];
-               for (var i in dbase) {
-                       if (id == dbase[i]['id']) {
-                               result.push(dbase[i]);
-                       }
-               }
-               return result;
-       }
-
-       /** 
-        * error messages
-        * order of %s args: Service name, method name, parameter name 
-        */
-       var msg = {
-               missingType             : '%s : %s : Type is Missing',
-               badType                 : '%s: %s : Invalid value for Type, Must be Contact/Group/Database',
-               badType2                : '%s : %s : Invalid Type, must be Contact/Group',
-               badType3                : '%s : %s : Invalid Type,it must be Contact',
-               badType4                : '%s : %s : Invalid Type, it must be Contact',
-               badType5                : '%s : %s : Invalid Content Type, It must be Group',
-               badOperationType: '%s : %s : Invalid Operation Type',
-               missingGroupLabel: '%s : %s : Group Label is Missing',
-               missingTID              : 'Contact : Cancel : TransactionID is missing',        // not 'Contacts'!!
-               badAsync                : '%s : %s : Invalid async parameters',
-               missingData             : '%s : %s : %s data Missing',
-               badData                 : '%s : %s : Invalid Type of Data , Map is required',
-               missingIdList   : '%s : %s : List of Ids is missing',
-               badIdList               : '%s : %s : Type of IdList is wrong, List is required',
-               missingSourceFile: '%s : %s : Import Source Filename is Missing',
-               missingDestinationFile: '%s : %s : Export Destination Filename is Missing',
-               missingId               : '%s : %s : Contact Id to be exported is missing',
-               missingId2              : '%s : %s : GroupId is missing',
-               is_missing              : '%s : %s : %s is missing',
-               is_invalid              : '%s : %s : %s is invalid'
-       };
-               
-
-}) ()
-