// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

[DartPackage="mojo_services"]
module contacts;

// A user contact.
struct Contact {
  int64 id;
  string name;
};

// Interface to query current user contacts.
[ServiceName="contacts::ContactsService"]
interface ContactsService {

  // Returns the number of contacts that match the given |filter|. |filter|
  // will be matched against the contact name without considering the case. A
  // contact will match as soon as a part of the name match the filter.
  GetCount(string? filter) => (uint64 count);

  // Returns an extract of the list of contacts matching |filter|. |filter|
  // will be matched against the contact name without considering the case. A
  // contact will match as soon as a part of the name match the filter.
  // Contacts are ordered by |name|. The |offset| first contacts are skipped
  // and at most |limit| contacts are returned.
  Get(string? filter, uint32 offset, uint32 limit) => (array<Contact> contacts);

  // Returns the emails associated with the contact with the given |id|.
  GetEmails(int64 id) => (array<string> emails);

  // Returns an url of the photo for the contact with the given |id|. If
  // |high_resolution| is true, a high resolution photo is returned, otherwise
  // a thumbnail is returned.
  GetPhoto(int64 id, bool high_resolution) => (string? photo_url);
};
