Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
84 changes: 72 additions & 12 deletions Bitrise.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,21 @@
<key>Bitrise.xcscheme_^#shared#^_</key>
<dict>
<key>orderHint</key>
<integer>4</integer>
<integer>6</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict/>
<dict>
<key>0E42CAD420EC7A7E0033CD03</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>0E42CAEA20EC7A800033CD03</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Bitrise/Controller/BRAccountsViewController.m"
timestampString = "568489294.475219"
timestampString = "568921711.3448499"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "131"
Expand All @@ -29,21 +29,5 @@
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
<BreakpointProxy
BreakpointExtensionID = "Xcode.Breakpoint.FileBreakpoint">
<BreakpointContent
shouldBeEnabled = "Yes"
ignoreCount = "0"
continueAfterRunningActions = "No"
filePath = "Bitrise/Storage/BRStorage.m"
timestampString = "568488686.975772"
startingColumnNumber = "9223372036854775807"
endingColumnNumber = "9223372036854775807"
startingLineNumber = "81"
endingLineNumber = "81"
landmarkName = "-removeAccount:completion:"
landmarkType = "7">
</BreakpointContent>
</BreakpointProxy>
</Breakpoints>
</Bucket>
1 change: 1 addition & 0 deletions Bitrise/Container/BRContainerBuilder.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface BRContainerBuilder : NSObject

- (NSPersistentContainer *)buildContainer;
- (NSPersistentContainer *)buildContainerOfType:(NSString *)type;

@end

Expand Down
6 changes: 5 additions & 1 deletion Bitrise/Container/BRContainerBuilder.m
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,10 @@
@implementation BRContainerBuilder

- (NSPersistentContainer *)buildContainer {
return [self buildContainerOfType:NSSQLiteStoreType];
}

- (NSPersistentContainer *)buildContainerOfType:(NSString *)type {
NSPersistentContainer *container = [NSPersistentContainer persistentContainerWithName:@"bitrise"];
NSPersistentStoreDescription *storeDescription = [NSPersistentStoreDescription new];
NSURL *documentsURL = [[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask][0];
Expand All @@ -27,7 +31,7 @@ - (NSPersistentContainer *)buildContainer {
}

storeDescription.URL = [appDirectoryURL URLByAppendingPathComponent:@"bitrise.sqlite"];
storeDescription.type = NSSQLiteStoreType;
storeDescription.type = type;
storeDescription.shouldInferMappingModelAutomatically = YES;
storeDescription.shouldMigrateStoreAutomatically = YES;
container.persistentStoreDescriptions = @[storeDescription];
Expand Down
2 changes: 1 addition & 1 deletion Bitrise/Container/BRDependencyContainer.m
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ - (BRBitriseAPI *)bitriseAPI {
}

- (BRStorage *)storage {
return [[BRStorage alloc] initWithContainer:self.persistenceContainer];
return [[BRStorage alloc] initWithContext:[self.persistenceContainer newBackgroundContext]];
}

- (BRObserver *)commandObserver {
Expand Down
2 changes: 1 addition & 1 deletion Bitrise/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
<key>CFBundleShortVersionString</key>
<string>0.2</string>
<key>CFBundleVersion</key>
<string>37</string>
<string>136</string>
<key>LSMinimumSystemVersion</key>
<string>$(MACOSX_DEPLOYMENT_TARGET)</string>
<key>LSUIElement</key>
Expand Down
23 changes: 12 additions & 11 deletions Bitrise/Networking/BRBitriseAPI.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,12 @@
#import "BRAppInfo.h"
#import "BRBuildInfo.h"

#import "BRAccountRequest.h"
#import "BRAppsRequest.h"
#import "BRBuildsRequest.h"
#import "BRAbortRequest.h"
#import "BRRebuildRequest.h"

NS_ASSUME_NONNULL_BEGIN

extern NSString * const kBRBitriseAPIDomain;
Expand All @@ -23,17 +29,12 @@ typedef void (^APIActionCallback)(BOOL status, NSError * _Nullable error);

@interface BRBitriseAPI : NSObject

- (void)getAccount:(NSString *)token completion:(APIAccountInfoCallback)completion;
- (void)getApps:(NSString *)token completion:(APIAppsListCallback)completion;
- (void)getBuilds:(NSString *)appSlug token:(NSString *)token after:(NSTimeInterval)after completion:(APIBuildsListCallback)completion;

- (void)abortBuild:(NSString *)buildSlug appSlug:(NSString *)appSlug token:(NSString *)token completion:(APIActionCallback)completion;
- (void)rebuildApp:(NSString *)appSlug
buildToken:(NSString *)token
branch:(NSString *)branch
commit:(NSString *)commit
workflow:(NSString *)workflow
completion:(APIActionCallback)completion;
- (void)getAccount:(BRAccountRequest *)request completion:(APIAccountInfoCallback)completion;
- (void)getApps:(BRAppsRequest *)request completion:(APIAppsListCallback)completion;
- (void)getBuilds:(BRBuildsRequest *)request completion:(APIBuildsListCallback)completion;

- (void)abortBuild:(BRAbortRequest *)request completion:( APIActionCallback)completion;
- (void)rebuild:(BRRebuildRequest *)request completion:(APIActionCallback)completion;

@end

Expand Down
41 changes: 11 additions & 30 deletions Bitrise/Networking/BRBitriseAPI.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,14 @@
#import "BRBitriseAPI.h"

#import "BRMacro.h"
#import "BRRequestBuilder.h"

NSString * const kBRBitriseAPIDomain = @"kBRBitriseAPIDomain";

static NSString * const kAccountInfoEndpoint = @"https://api.bitrise.io/v0.1/me";
static NSString * const kAppsEndpoint = @"https://api.bitrise.io/v0.1/apps";
static NSString * const kBuildsEndpoint = @"https://api.bitrise.io/v0.1/apps/%@/builds";
static NSString * const kAbortEndpoint = @"https://api.bitrise.io/v0.1/apps/%@/builds/%@/abort";
static NSString * const kRebuildEndpoint = @"https://api.bitrise.io/v0.1/apps/%@/builds/%@/rebuild";

typedef void (^APICallback)(NSDictionary * _Nullable, NSError * _Nullable);

@interface BRBitriseAPI ()

@property (strong, nonatomic) NSURLSession *session;
@property (strong, nonatomic) BRRequestBuilder *requestBuilder;

@end

Expand All @@ -35,27 +27,26 @@ - (instancetype)init {
NSURLSessionConfiguration *config = [NSURLSessionConfiguration defaultSessionConfiguration];
config.requestCachePolicy = NSURLRequestReloadIgnoringCacheData;
_session = [NSURLSession sessionWithConfiguration:config];
_requestBuilder = [BRRequestBuilder new];
}

return self;
}

#pragma mark - API calls -

- (void)getAccount:(NSString *)token completion:(APIAccountInfoCallback)completion {
[self runRequest:[self.requestBuilder accountRequest:token] completion:^(NSDictionary *result, NSError *error) {
- (void)getAccount:(BRAccountRequest *)request completion:(APIAccountInfoCallback)completion {
[self runRequest:request.urlRequest completion:^(NSDictionary *result, NSError *error) {
if (result) {
BRAccountInfo *accountInfo = [[BRAccountInfo alloc] initWithResponse:result token:token];
BRAccountInfo *accountInfo = [[BRAccountInfo alloc] initWithResponse:result token:request.token];
completion(accountInfo, nil);
} else {
completion(nil, error);
}
}];
}

- (void)getApps:(NSString *)token completion:(APIAppsListCallback)completion {
[self runRequest:[self.requestBuilder appsRequest:token] completion:^(NSDictionary *result, NSError *error) {
- (void)getApps:(BRAppsRequest *)request completion:(APIAppsListCallback)completion {
[self runRequest:request.urlRequest completion:^(NSDictionary *result, NSError *error) {
if (result) {
__block NSMutableArray <BRAppInfo *> *apps = [NSMutableArray array];
[result[@"data"] enumerateObjectsUsingBlock:^(NSDictionary *appData, NSUInteger idx, BOOL *stop) {
Expand All @@ -69,8 +60,8 @@ - (void)getApps:(NSString *)token completion:(APIAppsListCallback)completion {
}];
}

- (void)getBuilds:(NSString *)appSlug token:(NSString *)token after:(NSTimeInterval)after completion:(APIBuildsListCallback)completion {
[self runRequest:[self.requestBuilder buildsRequest:appSlug token:token after:after] completion:^(NSDictionary *result, NSError *error) {
- (void)getBuilds:(BRBuildsRequest *)request completion:(APIBuildsListCallback)completion {
[self runRequest:request.urlRequest completion:^(NSDictionary *result, NSError *error) {
if (result) {
__block NSMutableArray <BRBuildInfo *> *builds = [NSMutableArray array];
[result[@"data"] enumerateObjectsUsingBlock:^(NSDictionary *buildData, NSUInteger idx, BOOL *stop) {
Expand All @@ -84,24 +75,14 @@ - (void)getBuilds:(NSString *)appSlug token:(NSString *)token after:(NSTimeInter
}];
}

- (void)abortBuild:(NSString *)buildSlug appSlug:(NSString *)appSlug token:(NSString *)token completion:( APIActionCallback)completion {
[self runRequest:[self.requestBuilder abortRequest:buildSlug appSlug:appSlug token:token] completion:^(NSDictionary *result, NSError *error) {
- (void)abortBuild:(BRAbortRequest *)request completion:( APIActionCallback)completion {
[self runRequest:request.urlRequest completion:^(NSDictionary *result, NSError *error) {
BR_SAFE_CALL(completion, YES, error);
}];
}

- (void)rebuildApp:(NSString *)appSlug
buildToken:(NSString *)token
branch:(NSString *)branch
commit:(NSString *)commit
workflow:(NSString *)workflow
completion:(APIActionCallback)completion {
NSURLRequest *request = [self.requestBuilder rebuildRequest:appSlug
buildToken:token
branch:branch
commit:commit
workflow:workflow];
[self runRequest:request completion:^(NSDictionary *response, NSError *error) {
- (void)rebuild:(BRRebuildRequest *)request completion:(APIActionCallback)completion {
[self runRequest:request.urlRequest completion:^(NSDictionary *response, NSError *error) {
BR_SAFE_CALL(completion, response != nil, error);
}];
}
Expand Down
34 changes: 0 additions & 34 deletions Bitrise/Networking/BRRequestBuilder.h

This file was deleted.

101 changes: 0 additions & 101 deletions Bitrise/Networking/BRRequestBuilder.m

This file was deleted.

6 changes: 5 additions & 1 deletion Bitrise/Networking/Commands/Account/BRRemoveAccountCommand.m
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,11 @@ - (instancetype)initWithAPI:(BRBitriseAPI *)api storage:(BRStorage *)storage slu
}

- (void)execute:(BRCommandResult)callback {
[self.storage removeAccount:self.slug completion:callback];
[self.storage perform:^{
NSError *error;
BOOL result = [self.storage removeAccount:self.slug error:&error];
BR_SAFE_CALL(callback, result, error);
}];
}

@end
Loading