Subversion Repository Public Repository

insightly-api

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
using System.Collections.Generic;
using TS.Insightly.API.Contract;

namespace TS.Insightly.API.Interface
{
    /// <summary>
    /// Insightly API access.
    /// </summary>
    public interface IApi
    {
        #region Contacts

        /// <summary>
        /// Gets the contact for the unique contact ID.
        /// Note that the Id is not the Id shown for the contact in the web browser, but
        /// the contact Id that is unique to insightly.
        /// </summary>
        /// <param name="contactId">The contact unique identifier.</param>
        /// <returns>The contact for the given id.</returns>
        Contact GetContact(int contactId);

        /// <summary>
        /// Gets the contacts for email address.
        /// </summary>
        /// <param name="emailAddress">The email address.</param>
        /// <returns>List of contacts with a matching email address or empty list if no matches found.</returns>
        List<Contact> GetContactsForEmail(string emailAddress);

        /// <summary>
        /// Adds the new contact.
        /// </summary>
        /// <param name="newContact">The new contact.</param>
        /// <returns>The added contact if successful.</returns>
        Contact AddNewContact(Contact newContact);

        /// <summary>
        /// Adds the new contact if a contact does not already exist for the same email, 
        /// first and last names as the given contact.
        /// </summary>
        /// <param name="newContact">The new contact.</param>
        /// <returns>Structure containing details of the add.</returns>
        InsightlyAPI.ContactAddResult AddNewContactIfNotExists(Contact newContact);

        /// <summary>
        /// Deletes the contact.
        /// Note that the Id is not the Id shown for the contact in the web browser, but
        /// the contact Id that is unique to insightly.
        /// </summary>
        /// <param name="contactId">The contact unique identifier.</param>
        /// <returns><code>true</code> If the contact was deleted.</returns>
        bool DeleteContact(int contactId);

        #endregion Contacts

        #region Organisations

        /// <summary>
        /// Gets the organisation for the unique organisation ID.
        /// Note that the Id is not the Id shown for the organisation in the web browser, but
        /// the organisation Id that is unique to insightly.
        /// </summary>
        /// <param name="organisationId">The organisation unique identifier.</param>
        /// <returns>The organisation for the given id.</returns>
        Organisation GetOrganisation(int organisationId);

        /// <summary>
        /// Gets organisations.
        /// </summary>
        /// <param name="fullDetails">if set to <c>true</c> return full details.</param>
        /// <returns>All organisations.</returns>
        List<Organisation> GetOrganisations(bool fullDetails);

        /// <summary>
        /// Gets organisations matching the given name.
        /// </summary>
        /// <param name="orgName">Name of the org to find.</param>
        /// <returns>List of organisations (basic details) matching the given name.</returns>
        List<Organisation> GetOrganisationsForName(string orgName);

        /// <summary>
        /// Adds the new organisation.
        /// </summary>
        /// <param name="newOrganisation">The new organisation.</param>
        /// <returns>The added organisation if successful.</returns>
        Organisation AddNewOrganisation(Organisation newOrganisation);

        /// <summary>
        /// Deletes the organisation.
        /// Note that the Id is not the Id shown for the organisation in the web browser, but
        /// the organisation Id that is unique to insightly.
        /// </summary>
        /// <param name="organisationId">The organisation unique identifier.</param>
        /// <returns><code>true</code> If the organisation was deleted.</returns>
        bool DeleteOrganisation(int organisationId);

        #endregion Organisations

        #region Projects

        /// <summary>
        /// Gets the project for the unique organisation ID.
        /// Note that the Id is not the Id shown for the project in the web browser, but
        /// the project Id that is unique to insightly.
        /// </summary>
        /// <param name="projectId">The project unique identifier.</param>
        /// <returns>The project for the given id.</returns>
        Project GetProject(int projectId);

        /// <summary>
        /// Gets projects.
        /// </summary>
        /// <param name="fullDetails">if set to <c>true</c> return full details.</param>
        /// <returns>All projects.</returns>
        List<Project> GetProjects(bool fullDetails);

        #endregion Projects

    }
}

Commits for insightly-api/trunk/Insightly/Interface/IApi.cs

Diff revisions: vs.
Revision Author Commited Message
15 HadleyHope picture HadleyHope Tue 01 Oct, 2013 13:47:15 +0000

Refactored, added Ninject to load controllers for each part of the API.
InsightlyAPI class is now a true facade for the API.