Skip to content

Commit

Permalink
Merge branch 'release/v1.2.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
87kangsw committed Dec 24, 2019
2 parents 701424a + 7236729 commit 1311669
Show file tree
Hide file tree
Showing 18 changed files with 409 additions and 88 deletions.
10 changes: 8 additions & 2 deletions GitTime.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@
B269744A22BB1F8D00F67129 /* EmptyTypes.swift in Sources */ = {isa = PBXBuildFile; fileRef = B269744922BB1F8D00F67129 /* EmptyTypes.swift */; };
B269744C22BB214000F67129 /* EmptyTableViewCellReactor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B269744B22BB214000F67129 /* EmptyTableViewCellReactor.swift */; };
B272B2DE22F33AA00054FD15 /* GitHubAPITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B272B2DD22F33AA00054FD15 /* GitHubAPITests.swift */; };
B284DAE623AA3E17000F948F /* PanModalNaivgationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B284DAE523AA3E17000F948F /* PanModalNaivgationController.swift */; };
B289A05A229CC12E00AD9533 /* CellType.swift in Sources */ = {isa = PBXBuildFile; fileRef = B289A059229CC12E00AD9533 /* CellType.swift */; };
B289A05C229CCD8300AD9533 /* Int+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B289A05B229CCD8300AD9533 /* Int+Extensions.swift */; };
B289A05E229CD97B00AD9533 /* UITableView+Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = B289A05D229CD97B00AD9533 /* UITableView+Extensions.swift */; };
Expand Down Expand Up @@ -296,6 +297,7 @@
B269744922BB1F8D00F67129 /* EmptyTypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmptyTypes.swift; sourceTree = "<group>"; };
B269744B22BB214000F67129 /* EmptyTableViewCellReactor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EmptyTableViewCellReactor.swift; sourceTree = "<group>"; };
B272B2DD22F33AA00054FD15 /* GitHubAPITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GitHubAPITests.swift; sourceTree = "<group>"; };
B284DAE523AA3E17000F948F /* PanModalNaivgationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PanModalNaivgationController.swift; sourceTree = "<group>"; };
B289A059229CC12E00AD9533 /* CellType.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CellType.swift; sourceTree = "<group>"; };
B289A05B229CCD8300AD9533 /* Int+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Int+Extensions.swift"; sourceTree = "<group>"; };
B289A05D229CD97B00AD9533 /* UITableView+Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UITableView+Extensions.swift"; sourceTree = "<group>"; };
Expand Down Expand Up @@ -477,6 +479,7 @@
children = (
B228EAE3228D036700E55456 /* BaseViewController.swift */,
B244F330229797A0003F24FF /* BaseNavigationController.swift */,
B284DAE523AA3E17000F948F /* PanModalNaivgationController.swift */,
B228EAE5228D037B00E55456 /* MainTabBarController.swift */,
B237A5F222927C580069C59C /* MainTabBarReactor.swift */,
B20F70D9229289FE00F42770 /* Splash */,
Expand Down Expand Up @@ -1199,6 +1202,7 @@
B228EADE228C0EEB00E55456 /* Payload.swift in Sources */,
B289A061229CDA9200AD9533 /* Reusable.swift in Sources */,
B2E72A9522A7AD6600F54399 /* SettingLogoutCell.swift in Sources */,
B284DAE623AA3E17000F948F /* PanModalNaivgationController.swift in Sources */,
B289B98922AA021F00F0A1E2 /* Constants.swift in Sources */,
B289A072229D3B1B00AD9533 /* LanguagesViewReactor.swift in Sources */,
B2BF8B9422B753C1007B2AAA /* ContributionSection.swift in Sources */,
Expand Down Expand Up @@ -1465,7 +1469,7 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 8;
CURRENT_PROJECT_VERSION = 1;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = R46Q3HW9V3;
INFOPLIST_FILE = "GitTime/Supporting Files/Info.plist";
Expand All @@ -1474,6 +1478,7 @@
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.2.0;
PRODUCT_BUNDLE_IDENTIFIER = io.github.87kangsw.GitTime;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
Expand All @@ -1487,14 +1492,15 @@
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 8;
CURRENT_PROJECT_VERSION = 1;
DEVELOPMENT_TEAM = R46Q3HW9V3;
INFOPLIST_FILE = "GitTime/Supporting Files/Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
);
MARKETING_VERSION = 1.2.0;
PRODUCT_BUNDLE_IDENTIFIER = io.github.87kangsw.GitTime;
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 5.0;
Expand Down
29 changes: 21 additions & 8 deletions GitTime/Sources/Models/TrendDeveloper.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,11 @@
import Foundation

struct TrendDeveloper: ModelType {
let userName: String
let name: String?
let url: String
let profileURL: String
let repo: TrendDeveloperRepo
var userName: String
var name: String?
var url: String
var profileURL: String
var repo: TrendDeveloperRepo

enum CodingKeys: String, CodingKey {
case userName = "username"
Expand All @@ -23,6 +23,19 @@ struct TrendDeveloper: ModelType {
case repo
}

init(userName: String,
name: String?,
url: String,
profileURL: String,
repo: TrendDeveloperRepo) {

self.userName = userName
self.name = name
self.url = url
self.profileURL = profileURL
self.repo = repo
}

init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: CodingKeys.self)
userName = try container.decode(String.self, forKey: .userName)
Expand All @@ -43,7 +56,7 @@ struct TrendDeveloper: ModelType {
}

struct TrendDeveloperRepo: ModelType {
let name: String?
let url: String
let description: String
var name: String?
var url: String
var description: String
}
18 changes: 9 additions & 9 deletions GitTime/Sources/Models/TrendRepo.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@
import Foundation

struct TrendRepo: ModelType {
let author: String
let name: String
let url: String
let description: String
let language: String?
let languageColor: String?
let stars: Int
let forks: Int
let currentPeriodStars: Int
var author: String
var name: String
var url: String
var description: String
var language: String?
var languageColor: String?
var stars: Int
var forks: Int
var currentPeriodStars: Int
}
50 changes: 48 additions & 2 deletions GitTime/Sources/Network/GitTimeCralwerAPI.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,25 @@ enum GitTimeCrawlerAPI {
case trendingRepositories(language: String?, period: String?)
case trendingDevelopers(language: String?, period: String?)
case fetchContributions(userName: String, darkMode: Bool)

case trendingRepositoriesRawdata(language: String?, period: String?)
case tredingDevelopersRawdata(language: String?, period: String?)
case fetchContributionsRawdata(userName: String, darkMode: Bool)
}

extension GitTimeCrawlerAPI: TargetType {
var baseURL: URL {
return URL(string: "https://gittime-crawler.herokuapp.com")!
switch self {
case .trendingRepositoriesRawdata:
return URL(string: "https://github.com")!
case .tredingDevelopersRawdata:
return URL(string: "https://github.com")!
case .fetchContributionsRawdata:
return URL(string: "https://github.com")!
default:
return URL(string: "https://gittime-crawler.herokuapp.com")!
}

}

var path: String {
Expand All @@ -26,8 +40,15 @@ extension GitTimeCrawlerAPI: TargetType {
return "/repositories"
case .trendingDevelopers:
return "/developers"
case .fetchContributions(let userName, _):
case let .fetchContributions(userName, _):
return "/contribution/\(userName)"
case .tredingDevelopersRawdata:
return "/trending/developers"
case .trendingRepositoriesRawdata:
return "/trending"
case let .fetchContributionsRawdata(userName, _):
return "/\(userName)"

}
}

Expand Down Expand Up @@ -64,6 +85,31 @@ extension GitTimeCrawlerAPI: TargetType {
var params: [String: Any] = [:]
params["darkMode"] = darkMode
return .requestParameters(parameters: params, encoding: URLEncoding.default)

case let .trendingRepositoriesRawdata(language, period):
var params: [String: Any] = [:]
if let language = language, !language.isEmpty {
params["language"] = language
}
if let period = period, !period.isEmpty {
params["since"] = period
}

return .requestParameters(parameters: params, encoding: URLEncoding.default)

case let .tredingDevelopersRawdata(language, period):
var params: [String: Any] = [:]

if let language = language, !language.isEmpty {
params["language"] = language
}
if let period = period, !period.isEmpty {
params["since"] = period
}
return .requestParameters(parameters: params, encoding: URLEncoding.default)
case .fetchContributionsRawdata:
let params: [String: Any] = [:]
return .requestParameters(parameters: params, encoding: URLEncoding.default)
}
}

Expand Down
35 changes: 34 additions & 1 deletion GitTime/Sources/Services/GitTimeCrawlerService.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,22 @@
//

import RxSwift
import Moya

protocol GitTimeCrawlerServiceType: class {
func fetchTrendingRepositories(language: String?, period: String?) -> Observable<[TrendRepo]>
func fetchTrendingDevelopers(language: String?, period: String?) -> Observable<[TrendDeveloper]>
func fetchContributions(userName: String) -> Observable<ContributionInfo>

func fetchTrendingRepositoriesRawdata(language: String?, period: String?) -> Observable<Response>
func fetchTredingDevelopersRawdata(language: String?, period: String) -> Observable<Response>
func fetchContributionsRawdata(userName: String) -> Observable<Response>

func fetchTrialContributions() -> Observable<ContributionInfo>
}

class GitTimeCrawlerService: GitTimeCrawlerServiceType {

fileprivate let networking: GitTimeProvider<GitTimeCrawlerAPI>

init(networking: GitTimeProvider<GitTimeCrawlerAPI>) {
Expand Down Expand Up @@ -48,6 +54,33 @@ class GitTimeCrawlerService: GitTimeCrawlerServiceType {
.asObservable()
}

func fetchTrendingRepositoriesRawdata(language: String?, period: String?) -> Observable<Response> {

return self.networking.request(.trendingRepositoriesRawdata(language: language,
period: period))
.asObservable()
}

func fetchTredingDevelopersRawdata(language: String?, period: String) -> Observable<Response> {
return self.networking.request(.tredingDevelopersRawdata(language: language,
period: period))
.asObservable()
}

func fetchContributionsRawdata(userName: String) -> Observable<Response> {

var isDarkMode = false

if #available(iOS 13.0, *) {
let style = UIScreen.main.traitCollection.userInterfaceStyle
isDarkMode = style == .dark
}

return self.networking.request(.fetchContributionsRawdata(userName: userName,
darkMode: isDarkMode))
.asObservable()
}

func fetchTrialContributions() -> Observable<ContributionInfo> {
var isDarkMode = false
if #available(iOS 13.0, *) {
Expand Down
5 changes: 5 additions & 0 deletions GitTime/Sources/Utils/Extensions/String+Extensions.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,9 @@ extension String {
var localized: String {
return NSLocalizedString(self, comment: "")
}

var striped: String {
return replacingOccurrences(of: "\n", with: "")
.trimmingCharacters(in: .whitespacesAndNewlines)
}
}
14 changes: 14 additions & 0 deletions GitTime/Sources/Utils/Extensions/UIViewController+Extensions.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,11 @@
// Copyright © 2019 KanzDevelop. All rights reserved.
//

import SafariServices
import UIKit

import PanModal

extension UIViewController {
static func instantiateByStoryboard<T>() -> T {
let className = String(describing: self)
Expand All @@ -22,3 +25,14 @@ extension UIViewController {
return BaseNavigationController(rootViewController: self)
}
}

// MARK: - Pan Modal
extension UIViewController {
func presentPanModalWeb(urlString: String) {
guard let url = URL(string: urlString) else { return }

let safariVC = SFSafariViewController(url: url)
let nav = PanModalNaivgationController(rootViewController: safariVC)
presentPanModal(nav)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
// Copyright © 2019 KanzDevelop. All rights reserved.
//

import SafariServices
import UIKit

import PanModal
import ReactorKit
import RxCocoa
import RxDataSources
Expand Down Expand Up @@ -137,7 +137,7 @@ class ActivityViewController: BaseViewController, StoryboardView, ReactorBased {
.releaseEvent(let reactor),
.pullRequestReviewCommentEvent(let reactor),
.publicEvent(let reactor):
self.goToWebVC(urlString: reactor.currentState.event.openWebURL)
self.presentPanModalWeb(urlString: reactor.currentState.event.openWebURL)
}
}).disposed(by: self.disposeBag)

Expand All @@ -148,10 +148,5 @@ class ActivityViewController: BaseViewController, StoryboardView, ReactorBased {
}

// MARK: Go To
fileprivate func goToWebVC(urlString: String) {
guard let url = URL(string: urlString) else { return }

let safariVC = SFSafariViewController(url: url)
self.present(safariVC, animated: true, completion: nil)
}

}
Loading

0 comments on commit 1311669

Please sign in to comment.