Files
GitHawk/Classes/Issues/IssueType.swift
Ryan Nystrom ae26f96f76 Only display repo-allowed merge methods on PRs (#1817)
* update to latest GQL schema

* remove deprecated GQL

* add merge-allowed APIs

* wire up merge methods

* remove pref type if changed
2018-05-19 19:08:10 -04:00

49 lines
1.3 KiB
Swift

//
// IssueType.swift
// Freetime
//
// Created by Ryan Nystrom on 6/4/17.
// Copyright © 2017 Ryan Nystrom. All rights reserved.
//
import Foundation
import IGListKit
import UIKit
struct FileChanges: Equatable {
let additions: Int
let deletions: Int
let changedFiles: Int
}
protocol IssueType {
var id: String { get }
var pullRequest: Bool { get }
var number: Int { get }
var title: String { get }
var labelableFields: LabelableFields { get }
var commentFields: CommentFields { get }
var reactionFields: ReactionFields { get }
var closableFields: ClosableFields { get }
var assigneeFields: AssigneeFields { get }
var milestoneFields: MilestoneFields? { get }
var merged: Bool { get }
var targetBranch: String? { get }
var locked: Bool { get }
var headPaging: HeadPaging { get }
var viewerCanUpdate: Bool { get }
var fileChanges: FileChanges? { get }
var reviewRequestModel: IssueAssigneesModel? { get }
func mergeModel(availableTypes: [IssueMergeType]) -> IssueMergeModel?
func timelineViewModels(
owner: String,
repo: String,
contentSizeCategory: UIContentSizeCategory,
width: CGFloat
) -> (models: [ListDiffable], mentionedUsers: [AutocompleteUser])
}