New file |
| | |
| | | // |
| | | // ASIS3ServiceRequest.m |
| | | // Part of ASIHTTPRequest -> http://allseeing-i.com/ASIHTTPRequest |
| | | // |
| | | // Created by Ben Copsey on 16/03/2010. |
| | | // Copyright 2010 All-Seeing Interactive. All rights reserved. |
| | | // |
| | | |
| | | #import "ASIS3ServiceRequest.h" |
| | | #import "ASIS3Bucket.h" |
| | | |
| | | // Private stuff |
| | | @interface ASIS3ServiceRequest () |
| | | @property (retain) NSMutableArray *buckets; |
| | | @property (retain, nonatomic) ASIS3Bucket *currentBucket; |
| | | @property (retain, nonatomic) NSString *ownerID; |
| | | @property (retain, nonatomic) NSString *ownerName; |
| | | @end |
| | | |
| | | @implementation ASIS3ServiceRequest |
| | | |
| | | + (id)serviceRequest |
| | | { |
| | | ASIS3ServiceRequest *request = [[[self alloc] initWithURL:nil] autorelease]; |
| | | return request; |
| | | } |
| | | |
| | | - (id)initWithURL:(NSURL *)newURL |
| | | { |
| | | self = [super initWithURL:newURL]; |
| | | [self setBuckets:[[[NSMutableArray alloc] init] autorelease]]; |
| | | return self; |
| | | } |
| | | |
| | | - (void)dealloc |
| | | { |
| | | [buckets release]; |
| | | [currentBucket release]; |
| | | [ownerID release]; |
| | | [ownerName release]; |
| | | [super dealloc]; |
| | | } |
| | | |
| | | - (void)buildURL |
| | | { |
| | | [self setURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@://%@",[self requestScheme],[[self class] S3Host]]]]; |
| | | } |
| | | |
| | | - (void)parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict |
| | | { |
| | | if ([elementName isEqualToString:@"Bucket"]) { |
| | | [self setCurrentBucket:[ASIS3Bucket bucketWithOwnerID:[self ownerID] ownerName:[self ownerName]]]; |
| | | } |
| | | [super parser:parser didStartElement:elementName namespaceURI:namespaceURI qualifiedName:qName attributes:attributeDict]; |
| | | } |
| | | |
| | | - (void)parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName |
| | | { |
| | | if ([elementName isEqualToString:@"Bucket"]) { |
| | | [[self buckets] addObject:[self currentBucket]]; |
| | | [self setCurrentBucket:nil]; |
| | | } else if ([elementName isEqualToString:@"Name"]) { |
| | | [[self currentBucket] setName:[self currentXMLElementContent]]; |
| | | } else if ([elementName isEqualToString:@"CreationDate"]) { |
| | | [[self currentBucket] setCreationDate:[[ASIS3Request S3ResponseDateFormatter] dateFromString:[self currentXMLElementContent]]]; |
| | | } else if ([elementName isEqualToString:@"ID"]) { |
| | | [self setOwnerID:[self currentXMLElementContent]]; |
| | | } else if ([elementName isEqualToString:@"DisplayName"]) { |
| | | [self setOwnerName:[self currentXMLElementContent]]; |
| | | } else { |
| | | // Let ASIS3Request look for error messages |
| | | [super parser:parser didEndElement:elementName namespaceURI:namespaceURI qualifiedName:qName]; |
| | | } |
| | | } |
| | | |
| | | @synthesize buckets; |
| | | @synthesize currentBucket; |
| | | @synthesize ownerID; |
| | | @synthesize ownerName; |
| | | @end |