blob: 397722dcae07963a6973857c23caf40cf9914ccf [file] [log] [blame]
// 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);
};