88"""
99from __future__ import unicode_literals
1010
11- from .models import GitHubObject
11+ from .models import GitHubCore
1212
1313
14- class Event (GitHubObject ):
14+ class Event (GitHubCore ):
1515
1616 """The :class:`Event <Event>` object. It structures and handles the data
1717 returned by via the `Events <http://developer.github.com/v3/events>`_
@@ -47,7 +47,7 @@ def _update_attributes(self, event):
4747 handler = _payload_handlers .get (self .type , identity )
4848 #: Dictionary with the payload. Payload structure is defined by type_.
4949 # _type: http://developer.github.com/v3/events/types
50- self .payload = handler (event .get ('payload' ))
50+ self .payload = handler (event .get ('payload' ), self )
5151 #: Return ``tuple(owner, repository_name)``
5252 self .repo = event .get ('repo' )
5353 if self .repo is not None :
@@ -64,101 +64,102 @@ def list_types():
6464 return sorted (_payload_handlers .keys ())
6565
6666
67- def _commitcomment (payload ):
67+ def _commitcomment (payload , session ):
6868 from .repos .comment import RepoComment
6969 if payload .get ('comment' ):
70- payload ['comment' ] = RepoComment (payload ['comment' ], None )
70+ payload ['comment' ] = RepoComment (payload ['comment' ], session )
7171 return payload
7272
7373
74- def _follow (payload ):
74+ def _follow (payload , session ):
7575 from .users import User
7676 if payload .get ('target' ):
77- payload ['target' ] = User (payload ['target' ], None )
77+ payload ['target' ] = User (payload ['target' ], session )
7878 return payload
7979
8080
81- def _forkev (payload ):
81+ def _forkev (payload , session ):
8282 from .repos import Repository
8383 if payload .get ('forkee' ):
84- payload ['forkee' ] = Repository (payload ['forkee' ], None )
84+ payload ['forkee' ] = Repository (payload ['forkee' ], session )
8585 return payload
8686
8787
88- def _gist (payload ):
88+ def _gist (payload , session ):
8989 from .gists import Gist
9090 if payload .get ('gist' ):
91- payload ['gist' ] = Gist (payload ['gist' ], None )
91+ payload ['gist' ] = Gist (payload ['gist' ], session )
9292 return payload
9393
9494
95- def _issuecomm (payload ):
95+ def _issuecomm (payload , session ):
9696 from .issues import Issue
9797 from .issues .comment import IssueComment
9898 if payload .get ('issue' ):
99- payload ['issue' ] = Issue (payload ['issue' ], None )
99+ payload ['issue' ] = Issue (payload ['issue' ], session )
100100 if payload .get ('comment' ):
101- payload ['comment' ] = IssueComment (payload ['comment' ], None )
101+ payload ['comment' ] = IssueComment (payload ['comment' ], session )
102102 return payload
103103
104104
105- def _issueevent (payload ):
105+ def _issueevent (payload , session ):
106106 from .issues import Issue
107107 if payload .get ('issue' ):
108- payload ['issue' ] = Issue (payload ['issue' ], None )
108+ payload ['issue' ] = Issue (payload ['issue' ], session )
109109 return payload
110110
111111
112- def _member (payload ):
112+ def _member (payload , session ):
113113 from .users import User
114114 if payload .get ('member' ):
115- payload ['member' ] = User (payload ['member' ], None )
115+ payload ['member' ] = User (payload ['member' ], session )
116116 return payload
117117
118118
119- def _pullreqev (payload ):
119+ def _pullreqev (payload , session ):
120120 from .pulls import PullRequest
121121 if payload .get ('pull_request' ):
122- payload ['pull_request' ] = PullRequest (payload ['pull_request' ], None )
122+ payload ['pull_request' ] = PullRequest (payload ['pull_request' ],
123+ session )
123124 return payload
124125
125126
126- def _pullreqcomm (payload ):
127+ def _pullreqcomm (payload , session ):
127128 from .pulls import PullRequest , ReviewComment
128129 # Transform the Pull Request attribute
129130 pull = payload .get ('pull_request' )
130131 if pull :
131- payload ['pull_request' ] = PullRequest (pull )
132+ payload ['pull_request' ] = PullRequest (pull , session )
132133
133134 # Transform the Comment attribute
134135 comment = payload .get ('comment' )
135136 if comment :
136- payload ['comment' ] = ReviewComment (comment , None )
137+ payload ['comment' ] = ReviewComment (comment , session )
137138 return payload
138139
139140
140- def _release (payload ):
141+ def _release (payload , session ):
141142 from .repos .release import Release
142143 release = payload .get ('release' )
143144 if release :
144- payload ['release' ] = Release (release )
145+ payload ['release' ] = Release (release , session )
145146 return payload
146147
147148
148- def _team (payload ):
149+ def _team (payload , session ):
149150 from .orgs import Team
150151 from .repos import Repository
151152 from .users import User
152153 if payload .get ('team' ):
153- payload ['team' ] = Team (payload ['team' ], None )
154+ payload ['team' ] = Team (payload ['team' ], session )
154155 if payload .get ('repo' ):
155- payload ['repo' ] = Repository (payload ['repo' ], None )
156+ payload ['repo' ] = Repository (payload ['repo' ], session )
156157 if payload .get ('sender' ):
157- payload ['sender' ] = User (payload ['sender' ], None )
158+ payload ['sender' ] = User (payload ['sender' ], session )
158159 return payload
159160
160161
161- def identity (x ):
162+ def identity (x , session ):
162163 return x
163164
164165
@@ -174,7 +175,7 @@ def identity(x):
174175 'IssueCommentEvent' : _issuecomm ,
175176 'IssuesEvent' : _issueevent ,
176177 'MemberEvent' : _member ,
177- 'PublicEvent' : lambda x : '' ,
178+ 'PublicEvent' : identity ,
178179 'PullRequestEvent' : _pullreqev ,
179180 'PullRequestReviewCommentEvent' : _pullreqcomm ,
180181 'PushEvent' : identity ,
0 commit comments