Sha256: aba9435ab12e6b3a6fb639389920af739079d53b0e8c5020fa4b6b5ee45e45f9

Contents?: true

Size: 1.67 KB

Versions: 1

Compression:

Stored size: 1.67 KB

Contents

module LinkedIn
  module API
    module Profiles
      def profile_api(selector)
        profile selector, Permissions::PROFILE_REQ
      end

      def profile(selector = '~', fields = nil, token = nil)
        fields ||= profile_fields
        query = "#{selector.to_param}:(#{Permissions.render_permissions fields})"
        get "v1/people/#{query}" do |req|
          req.headers.merge! 'x-li-auth-token' => token unless token.blank?
        end
      end

      def connections(selector = '~')
        profile [selector, 'connections'].join '/'
      end

      def search(options = {})
       get "v1/people-search?#{options.to_param}"
      end

      def connect_with(selector, subject, message, type = :friend, auth_name = nil, auth_value = nil)
        if auth_name.blank? || auth_value.blank?
          profile = profile_api selector
          token = profile.apiStandardProfileRequest_.headers_.values_.first.value
          auth_name, auth_value = *token.split(':')
        end

        connection_request = { recipients: { values: [ { person: { _path: "/people/#{selector.to_param}" } } ] },
                               subject: subject,
                               body: message,
                               'item-content' => {
                                 'invitation-request' => {
                                    'connect-type' => type,
                                    authorization: { name: auth_name, value: auth_value } } } }

        post 'v1/people/~/mailbox' do |req|
          req.headers['Content-Type'] = 'application/json'
          req.headers['x-li-format'] = 'json'
          req.body = connection_request.to_json
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
linkedin2-0.0.6 lib/linkedin/api/profiles.rb