diff --git a/Blog/BlogController.h b/Blog/BlogController.h index 7fd7cdd..95cea60 100644 --- a/Blog/BlogController.h +++ b/Blog/BlogController.h @@ -27,7 +27,7 @@ - (PMKPromise *)requestAllPostsWithCaching:(BOOL)useCache; - (PMKPromise *)requestPostWithPath:(NSString *)path; -- (PMKPromise *)requestCreateDraft:(Post *)draft publishImmediately:(BOOL)publish waitForCompilation:(BOOL)waitForCompilation; +- (PMKPromise *)requestCreateDraft:(Post *)draft publishImmediatelyToEnvironment:(NSString *)env waitForCompilation:(BOOL)waitForCompilation; - (PMKPromise *)requestUpdatePost:(Post *)post waitForCompilation:(BOOL)waitForCompilation; - (PMKPromise *)requestPublishDraft:(Post *)post; - (PMKPromise *)requestUnpublishPost:(Post *)post; diff --git a/Blog/BlogController.m b/Blog/BlogController.m index f552f7e..bd28bfd 100644 --- a/Blog/BlogController.m +++ b/Blog/BlogController.m @@ -87,8 +87,8 @@ } } -- (PMKPromise *)requestCreateDraft:(Post *)draft publishImmediately:(BOOL)publish waitForCompilation:(BOOL)waitForCompilation { - return [_service requestCreateDraftWithID:draft.objectID title:draft.title body:draft.body link:draft.url.absoluteString publish:publish waitForCompilation:waitForCompilation].then(^(Post *post) { +- (PMKPromise *)requestCreateDraft:(Post *)draft publishImmediatelyToEnvironment:(NSString *)env waitForCompilation:(BOOL)waitForCompilation { + return [_service requestCreateDraftWithID:draft.objectID title:draft.title body:draft.body link:draft.url.absoluteString environment:env waitForCompilation:waitForCompilation].then(^(Post *post) { [_store addDraft:post]; return post; }); diff --git a/Blog/BlogService.h b/Blog/BlogService.h index f802a1f..b5cb5a8 100644 --- a/Blog/BlogService.h +++ b/Blog/BlogService.h @@ -32,7 +32,7 @@ typedef NS_ENUM(NSUInteger, BlogServiceErrorCode) { - (PMKPromise *)requestPublishedPosts; - (PMKPromise *)requestPostWithPath:(NSString *)path; -- (PMKPromise *)requestCreateDraftWithID:(NSString *)draftID title:(NSString *)title body:(NSString *)body link:(NSString *)link publish:(BOOL)publish waitForCompilation:(BOOL)waitForCompilation; +- (PMKPromise *)requestCreateDraftWithID:(NSString *)draftID title:(NSString *)title body:(NSString *)body link:(NSString *)link environment:(NSString *)env waitForCompilation:(BOOL)waitForCompilation; - (PMKPromise *)requestUpdatePostWithPath:(NSString *)path title:(NSString *)title body:(NSString *)body link:(NSString *)link waitForCompilation:(BOOL)waitForCompilation; - (PMKPromise *)requestPublishDraftWithPath:(NSString *)path; - (PMKPromise *)requestUnpublishPostWithPath:(NSString *)path; diff --git a/Blog/BlogService.m b/Blog/BlogService.m index 7825ff9..540fe25 100644 --- a/Blog/BlogService.m +++ b/Blog/BlogService.m @@ -93,14 +93,14 @@ NSString *const BlogServiceErrorDomain = @"BlogServiceErrorDomain"; return [self.client get:[self urlFor:path] headers:nil].then([self decodePostBlock]); } -- (PMKPromise *)requestCreateDraftWithID:(NSString *)draftID title:(NSString *)title body:(NSString *)body link:(NSString *)link publish:(BOOL)publish waitForCompilation:(BOOL)waitForCompilation { +- (PMKPromise *)requestCreateDraftWithID:(NSString *)draftID title:(NSString *)title body:(NSString *)body link:(NSString *)link environment:(NSString *)env waitForCompilation:(BOOL)waitForCompilation { NSDictionary *fields = @{ @"id" : draftID, @"title" : title ?: [NSNull null], @"body" : body, @"link" : link ?: [NSNull null], - @"publish" : publish ? @"true" : [NSNull null], - @"wait" : waitForCompilation ? @"true" : [NSNull null], + @"env" : env ?: [NSNull null], + @"wait" : waitForCompilation ? @(YES) : [NSNull null], }; return [self.client postJSON:[self urlFor:@"/posts/drafts"] headers:nil fields:fields].then([self decodePostBlock]); } diff --git a/Blog/EditorViewController.m b/Blog/EditorViewController.m index d3a6b22..20a11a7 100644 --- a/Blog/EditorViewController.m +++ b/Blog/EditorViewController.m @@ -278,7 +278,7 @@ static NSString *const StateRestorationModifiedPostKey = @"modifiedPost"; NSString *verb; if (modifiedPost.new) { verb = @"create"; - savePromise = [self.blogController requestCreateDraft:modifiedPost publishImmediately:NO waitForCompilation:waitForCompilation]; + savePromise = [self.blogController requestCreateDraft:modifiedPost publishImmediatelyToEnvironment:nil waitForCompilation:waitForCompilation]; } else { verb = @"update"; diff --git a/samhuri.net/ShareViewController.m b/samhuri.net/ShareViewController.m index 1a0c0bd..c501ffa 100644 --- a/samhuri.net/ShareViewController.m +++ b/samhuri.net/ShareViewController.m @@ -39,17 +39,14 @@ [provider loadItemForTypeIdentifier:@"public.url" options:nil completionHandler:^(NSURL *url, NSError *error) { // TODO: image Post *post = [Post newDraftWithTitle:title body:body url:url]; - [blogController requestCreateDraft:post publishImmediately:YES waitForCompilation:NO].then(^{ - [self.extensionContext completeRequestReturningItems:@[] completionHandler:nil]; - }).catch(^(NSError *error) { + [blogController requestCreateDraft:post publishImmediatelyToEnvironment:@"production" waitForCompilation:NO].catch(^(NSError *error) { UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Error" message:error.localizedDescription preferredStyle:UIAlertControllerStyleAlert]; [alert addAction:[UIAlertAction actionWithTitle:@"Dismiss" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { - [self dismissViewControllerAnimated:YES completion:^{ - [self.extensionContext completeRequestReturningItems:@[] completionHandler:nil]; - }]; + [self dismissViewControllerAnimated:YES completion:nil]; }]]; [self presentViewController:alert animated:YES completion:nil]; }); + [self.extensionContext completeRequestReturningItems:@[] completionHandler:nil]; }]; }