@@ -90,174 +90,47 @@ def new_from_dict(cls, d, h=None, **kwargs):
9090 return d
9191
9292
93- class App (BaseResource ):
94- """Heroku App ."""
93+ class Authorization (BaseResource ):
94+ """Github Authorization ."""
9595
96- _strs = ['name' , 'create_status' , 'stack' , 'repo_migrate_status' ]
97- _ints = ['id' , 'slug_size' , 'repo_size' , 'dynos' , 'workers' ]
98- _dates = ['created_at' ,]
99- _pks = ['name' , 'id' ]
100-
101- def __init__ (self ):
102- super (App , self ).__init__ ()
96+ _strs = ['url' , 'scopes' , 'token' , 'note' , 'note_url' ]
97+ _ints = ['id' ]
98+ _dates = ['created_at' , 'updated_at' ]
99+ _pks = ['id' ]
103100
104101 def __repr__ (self ):
105- return "<app '{0}'>" .format (self .name )
102+ return "<authorization '{0}'>" .format (self .id )
106103
107- def new (self , name = None , stack = 'cedar' ):
108- """Creates a new app ."""
104+ def new (self , scopes = None , note = None , note_url = None ):
105+ """Creates a new authorization ."""
109106
110107 payload = {}
111108
112- if name :
113- payload ['app[name] ' ] = name
109+ if scopes :
110+ payload ['scopes ' ] = scopes
114111
115- if stack :
116- payload ['app[stack]' ] = stack
112+ if note :
113+ payload ['note' ] = note
114+
115+ if note_url :
116+ payload ['note_url' ] = note_url
117117
118118 r = self ._h ._http_resource (
119119 method = 'POST' ,
120- resource = ('apps ' ,),
120+ resource = ('authorizations ' ,),
121121 data = payload
122122 )
123123
124- name = json .loads (r .content ).get ('name' )
125- return self ._h .apps .get (name )
126-
127- @property
128- def addons (self ):
129- return self ._h ._get_resources (
130- resource = ('apps' , self .name , 'addons' ),
131- obj = Addon , app = self
132- )
133-
134- @property
135- def collaborators (self ):
136- """The collaborators for this app."""
137- return self ._h ._get_resources (
138- resource = ('apps' , self .name , 'collaborators' ),
139- obj = Collaborator , app = self
140- )
141-
142- @property
143- def domains (self ):
144- """The domains for this app."""
145- return self ._h ._get_resources (
146- resource = ('apps' , self .name , 'domains' ),
147- obj = Domain , app = self
148- )
149-
150- @property
151- def releases (self ):
152- """The releases for this app."""
153- return self ._h ._get_resources (
154- resource = ('apps' , self .name , 'releases' ),
155- obj = Release , app = self
156- )
157-
158- @property
159- def processes (self ):
160- """The proccesses for this app."""
161- return self ._h ._get_resources (
162- resource = ('apps' , self .name , 'ps' ),
163- obj = Process , app = self , map = ProcessListResource
164- )
165-
166- @property
167- def config (self ):
168- """The envs for this app."""
169-
170- return self ._h ._get_resource (
171- resource = ('apps' , self .name , 'config_vars' ),
172- obj = ConfigVars , app = self
173- )
174-
175- @property
176- def info (self ):
177- """Returns current info for this app."""
178-
179- return self ._h ._get_resource (
180- resource = ('apps' , self .name ),
181- obj = App ,
182- )
183-
184- def rollback (self , release ):
185- """Rolls back the release to the given version."""
186- r = self ._h ._http_resource (
187- method = 'POST' ,
188- resource = ('apps' , self .name , 'releases' ),
189- data = {'rollback' : release }
190- )
191- return self .releases [- 1 ]
192-
193-
194- def rename (self , name ):
195- """Renames app to given name."""
196-
197- r = self ._h ._http_resource (
198- method = 'PUT' ,
199- resource = ('apps' , self .name ),
200- data = {'app[name]' : name }
201- )
202- return r .ok
203-
204- def transfer (self , user ):
205- """Transfers app to given username's account."""
206-
207- r = self ._h ._http_resource (
208- method = 'PUT' ,
209- resource = ('apps' , self .name ),
210- data = {'app[transfer_owner]' : user }
211- )
212- return r .ok
213-
214- def maintenance (self , on = True ):
215- """Toggles maintenance mode."""
216-
217- r = self ._h ._http_resource (
218- method = 'POST' ,
219- resource = ('apps' , self .name , 'server' , 'maintenance' ),
220- data = {'maintenance_mode' : int (on )}
221- )
124+ _id = json .loads (r .content ).get ('id' )
125+ return self ._h .apps .get (_id )
222126 return r .ok
223127
224128 def destroy (self ):
225129 """Destoys the app. Do be careful."""
226130
227131 r = self ._h ._http_resource (
228132 method = 'DELETE' ,
229- resource = ('apps ' , self .name )
133+ resource = ('authorizations ' , self .id )
230134 )
231135 return r .ok
232136
233- def logs (self , num = None , source = None , tail = False ):
234- """Returns the requested log."""
235-
236- # Bootstrap payload package.
237- payload = {'logplex' : 'true' }
238-
239- if num :
240- payload ['num' ] = num
241-
242- if source :
243- payload ['source' ] = source
244-
245- if tail :
246- payload ['tail' ] = 1
247-
248- # Grab the URL of the logplex endpoint.
249- r = self ._h ._http_resource (
250- method = 'GET' ,
251- resource = ('apps' , self .name , 'logs' ),
252- data = payload
253- )
254-
255- # Grab the actual logs.
256- r = requests .get (r .content )
257-
258- if not tail :
259- return r .content
260- else :
261- # Return line iterator for tail!
262- return r .iter_lines ()
263-
0 commit comments