123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
- var argscheck = require('cordova/argscheck'),
- exec = require('cordova/exec'),
- ContactError = require('./ContactError'),
- Contact = require('./Contact'),
- fieldType = require('./ContactFieldType'),
- convertUtils = require('./convertUtils');
-
- /**
- * Represents a group of Contacts.
- * @constructor
- */
- var contacts = {
- fieldType: fieldType,
- /**
- * Returns an array of Contacts matching the search criteria.
- * @param fields that should be searched
- * @param successCB success callback
- * @param errorCB error callback
- * @param {ContactFindOptions} options that can be applied to contact searching
- * @return array of Contacts matching search criteria
- */
- find: function(fields, successCB, errorCB, options) {
- argscheck.checkArgs('afFO', 'contacts.find', arguments);
- if (!fields.length) {
- if (errorCB) {
- errorCB(new ContactError(ContactError.INVALID_ARGUMENT_ERROR));
- }
- } else {
- // missing 'options' param means return all contacts
- options = options || { filter: '', multiple: true };
- var win = function(result) {
- var cs = [];
- for (var i = 0, l = result.length; i < l; i++) {
- cs.push(convertUtils.toCordovaFormat(contacts.create(result[i])));
- }
- successCB(cs);
- };
- exec(win, errorCB, "Contacts", "search", [fields, options]);
- }
- },
-
- /**
- * This function picks contact from phone using contact picker UI
- * @returns new Contact object
- */
- pickContact: function (successCB, errorCB) {
-
- argscheck.checkArgs('fF', 'contacts.pick', arguments);
-
- var win = function (result) {
- // if Contacts.pickContact return instance of Contact object
- // don't create new Contact object, use current
- var contact = result instanceof Contact ? result : contacts.create(result);
- successCB(convertUtils.toCordovaFormat(contact));
- };
- exec(win, errorCB, "Contacts", "pickContact", []);
- },
-
- /**
- * This function creates a new contact, but it does not persist the contact
- * to device storage. To persist the contact to device storage, invoke
- * contact.save().
- * @param properties an object whose properties will be examined to create a new Contact
- * @returns new Contact object
- */
- create: function(properties) {
- argscheck.checkArgs('O', 'contacts.create', arguments);
- var contact = new Contact();
- for (var i in properties) {
- if (typeof contact[i] !== 'undefined' && properties.hasOwnProperty(i)) {
- contact[i] = properties[i];
- }
- }
- return contact;
- }
- };
-
- module.exports = contacts;
|