Expanded open file functionality to use available apps.
[pithos-ios] / Classes / GetFlavorsRequest.m
1 //
2 //  GetFlavorsRequest.m
3 //  OpenStack
4 //
5 //  Created by Mike Mayo on 12/31/10.
6 //  The OpenStack project is provided under the Apache 2.0 license.
7 //
8
9 #import "GetFlavorsRequest.h"
10 #import "OpenStackAccount.h"
11 #import "AccountManager.h"
12 #import "Flavor.h"
13
14 @implementation GetFlavorsRequest
15
16 + (id)request:(OpenStackAccount *)account method:(NSString *)method url:(NSURL *)url {
17         GetFlavorsRequest *request = [[[GetFlavorsRequest alloc] initWithURL:url] autorelease];
18     request.account = account;
19         [request setRequestMethod:method];
20         [request addRequestHeader:@"X-Auth-Token" value:[account authToken]];
21     [request addRequestHeader:@"Content-Type" value:@"application/json"];
22     [request setTimeOutSeconds:40];
23         return request;
24 }
25
26 + (id)serversRequest:(OpenStackAccount *)account method:(NSString *)method path:(NSString *)path {
27     NSString *now = [[[NSDate date] description] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
28         NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"%@%@?now=%@", account.serversURL, path, now]];
29     return [GetFlavorsRequest request:account method:method url:url];
30 }
31
32 + (GetFlavorsRequest *)request:(OpenStackAccount *)account {
33     GetFlavorsRequest *request = [GetFlavorsRequest serversRequest:account method:@"GET" path:@"/flavors/detail"];
34     request.account = account;
35     return request;
36 }
37
38
39 - (void)requestFinished { 
40     if ([self isSuccess]) {
41         self.account.flavors = [self flavors];
42         [self.account persist];
43         [self.account.manager notify:@"getFlavorsSucceeded" request:self object:self.account];
44     } else {
45         [self.account.manager notify:@"getFlavorsFailed" request:self object:self.account];
46     }
47     
48     [super requestFinished];
49 }
50
51 - (void)failWithError:(NSError *)theError {
52     [self.account.manager notify:@"getFlavorsFailed" request:self object:self.account];
53     [super failWithError:theError];
54 }
55
56 @end