google-dsc

API wrapper for Google Domain Shared Contacts [incomplete]

npm install google-dsc
24 downloads in the last month

google-dsc

API wrapper for Google Domain Shared Contacts [incomplete]

Warning

This library is in active development and should not be considered stable or production ready.

Supported Fields

  • updated
  • title (title)
  • name (gd:name?)
    • given (gd:givenName?)
    • family (gd:familyName?)
    • full (given + family) (note: currently this is a read-only synthesized property independent of the XML representation)
  • emails (gd:email*)
    • email (gd:email)
      • label (@label?)
      • type (@rel?#)
      • address (@address?)
  • phones (gd:phoneNumber*)
    • phone (gd:phoneNumber)
      • label (@label?)
      • type (@rel?#)
      • number (text())

Behavior

  • Setting properties that do not exist in the XML representation will create them.
  • Email and phone types are restricted to the allowed values according to this.

Example

You can manipulate


<feed xmlns='http://www.w3.org/2005/Atom'
    xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'
    xmlns:gd='http://schemas.google.com/g/2005'
    xmlns:gContact='http://schemas.google.com/contact/2008'
    xmlns:batch='http://schemas.google.com/gdata/batch'>
  <id>https://www.google.com/m8/feeds/contacts/example.com/base</id>
  <updated>2008-03-05T12:36:38.836Z</updated>
  <dummy>Foobar</dummy>
  <category scheme='http://schemas.google.com/g/2005#kind'
    term='http://schemas.google.com/contact/2008#contact' />
  <title type='text'>example.com's Contacts</title>
  <link rel='http://schemas.google.com/g/2005#feed'
    type='application/atom+xml'
    href='https://www.google.com/m8/feeds/contacts/example.com/full' />
  <link rel='http://schemas.google.com/g/2005#post'
    type='application/atom+xml'
    href='https://www.google.com/m8/feeds/contacts/example.com/full' />
  <link rel='http://schemas.google.com/g/2005#batch'
    type='application/atom+xml'
    href='https://www.google.com/m8/feeds/contacts/example.com/full/batch' />
  <link rel='self' type='application/atom+xml'
    href='https://www.google.com/m8/feeds/contacts/example.com/full?max-results=25' />
  <author>
    <name>example.com</name>
    <email>example.com</email>
  </author>
  <generator version='1.0' uri='https://www.google.com/m8/feeds/contacts'>
    Contacts
  </generator>
  <openSearch:totalResults>1</openSearch:totalResults>
  <openSearch:startIndex>1</openSearch:startIndex>
  <openSearch:itemsPerPage>25</openSearch:itemsPerPage>
  <entry xmlns:atom='http://www.w3.org/2005/Atom'
    xmlns:gd='http://schemas.google.com/g/2005'>
    <category scheme='http://schemas.google.com/g/2005#kind'
      term='http://schemas.google.com/contact/2008#contact' />
    <gd:name>
       <gd:givenName>Elizabeth</gd:givenName>
       <gd:familyName>Bennet</gd:familyName>
       <gd:fullName>Elizabeth Bennet</gd:fullName>
    </gd:name>
    <content type='text'>Notes</content>
    <gd:email rel='http://schemas.google.com/g/2005#work'
      primary='true'
      address='liz@gmail.com' displayName='E. Bennet' />
    <gd:email rel='http://schemas.google.com/g/2005#home'
      address='liz@example.org' />
    <gd:phoneNumber rel='http://schemas.google.com/g/2005#work'
      primary='true'>
      (206)555-1212
    </gd:phoneNumber>
    <gd:phoneNumber rel='http://schemas.google.com/g/2005#home'>
      (206)555-1213
    </gd:phoneNumber>
    <gd:im address='liz@gmail.com'
      protocol='http://schemas.google.com/g/2005#GOOGLE_TALK'
      primary='true'
      rel='http://schemas.google.com/g/2005#home' />
    <gd:structuredPostalAddress
        rel='http://schemas.google.com/g/2005#work'
        primary='true'>
      <gd:city>Mountain View</gd:city>
      <gd:street>1600 Amphitheatre Pkwy</gd:street>
      <gd:region>CA</gd:region>
      <gd:postcode>94043</gd:postcode>
      <gd:country>United States</gd:country>
      <gd:formattedAddress>
        1600 Amphitheatre Pkwy Mountain View
      </gd:formattedAddress>
    </gd:structuredPostalAddress>
  </entry>
</feed>

as

{ updated: [Getter],
  contacts:
   [ { name:
        { full: [Getter],
          given: [Getter/Setter],
          family: [Getter/Setter] },
       emails:
        [ { type: [Getter/Setter],
            label: [Getter/Setter],
            address: [Getter/Setter] },
          { type: [Getter/Setter],
            label: [Getter/Setter],
            address: [Getter/Setter] } ],
       phones:
        [ { type: [Getter/Setter],
            label: [Getter/Setter],
            number: [Getter/Setter] },
          { type: [Getter/Setter],
            label: [Getter/Setter],
            number: [Getter/Setter] } ] } ] }
npm loves you