forked from ozgur/python-linkedin
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.py
More file actions
96 lines (79 loc) · 2.86 KB
/
Copy pathmodels.py
File metadata and controls
96 lines (79 loc) · 2.86 KB
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
# -*- coding: utf-8 -*-
from future.builtins import str
from future.builtins import object
import collections
AccessToken = collections.namedtuple('AccessToken', ['access_token', 'expires_in'])
class LinkedInRecipient(object):
def __init__(self, member_id, email, first_name, last_name):
assert member_id or email, 'Either member ID or email must be given'
if member_id:
self.member_id = str(member_id)
else:
self.member_id = None
self.email = email
self.first_name = first_name
self.last_name = last_name
@property
def json(self):
result = {'person': None}
if self.member_id:
result['person'] = {'_path': '/people/id=%s' % self.member_id}
else:
result['person'] = {'_path': '/people/email=%s' % self.email}
if self.first_name:
result['person']['first-name'] = self.first_name
if self.last_name:
result['person']['last-name'] = self.last_name
return result
class LinkedInInvitation(object):
def __init__(self, subject, body, recipients, connect_type, auth_name=None,
auth_value=None):
self.subject = subject
self.body = body
self.recipients = recipients
self.connect_type = connect_type
self.auth_name = auth_name
self.auth_value = auth_value
@property
def json(self):
result = {
'recipients': {
'values': []
},
'subject': self.subject,
'body': self.body,
'item-content': {
'invitation-request': {
'connect-type': self.connect_type
}
}
}
for recipient in self.recipients:
result['recipients']['values'].append(recipient.json)
if self.auth_name and self.auth_value:
auth = {'name': self.auth_name, 'value': self.auth_value}
result['item-content']['invitation-request']['authorization'] = auth
return result
class LinkedInMessage(object):
def __init__(self, subject, body, recipients, auth_name=None,
auth_value=None):
self.subject = subject
self.body = body
self.recipients = recipients
self.auth_name = auth_name
self.auth_value = auth_value
@property
def json(self):
result = {
'recipients': {
'values': []
},
'subject': self.subject,
'body': self.body,
}
for recipient in self.recipients:
result['recipients']['values'].append(recipient.json)
if self.auth_name and self.auth_value:
auth = {'name': self.auth_name, 'value': self.auth_value}
result['item-content']['invitation-request']['authorization'] = auth
return result