// // API.swift // GithubIssues // // Created by Leonard on 2017. 9. 10.. // Copyright © 2017년 intmain. All rights reserved. // import Foundation import Alamofire import SwiftyJSON struct App { static var api: API = { switch GlobalState.instance.serviceType { case .github: return GithubAPI() case .bitbucket: return BitbucketAPI() } }() } protocol API { typealias IssueResponsesHandler = (DataResponse<[Model.Issue]>) -> Void typealias CommentResponsesHandler = (DataResponse<[Model.Comment]>) -> Void func getToekn(handler: @escaping (() -> Void)) func tokenRefresh(handler: @escaping (() -> Void)) func repoIssues(owner: String, repo: String) -> (Int, @escaping IssueResponsesHandler) -> Void func issueComment(owner: String, repo: String, number: Int) -> (Int, @escaping CommentResponsesHandler) -> Void func createComment(owner: String, repo: String, number: Int, comment: String, completionHandler: @escaping (DataResponse) -> Void ) func createIssue(owner: String, repo: String, title: String, body: String, completionHandler: @escaping (DataResponse) -> Void ) func closeIssue(owner: String, repo: String, number: Int, issue: Model.Issue, completionHandler: @escaping (DataResponse) -> Void) func openIssue(owner: String, repo: String, number: Int, issue: Model.Issue, completionHandler: @escaping (DataResponse) -> Void) }