added graphql integration preparing for massive reimplementation

This commit is contained in:
kosh 2017-08-01 10:49:24 +08:00
parent 19b01c4db7
commit e366341334
6 changed files with 34388 additions and 2 deletions

View File

@ -27,5 +27,10 @@ after_success:
- bash <(curl -s https://codecov.io/bash)
notifications:
slack: fasthub:mjJWGD8UpgSgKawKa5OqMNlR
email: false
webhooks:
urls:
- https://discordapp.com/api/webhooks/341508199612153857/_86ddhBkrka3SaPzYJtL2LBH-sKeVI_tSAp0L2h4cPoy2m4CLa4lpqqJu4rjxHs86V0i
on_success: always
on_failure: always
on_start: never
email: false

View File

@ -1,4 +1,5 @@
apply plugin: 'com.android.application'
apply plugin: 'com.apollographql.android'
apply plugin: 'kotlin-android'
apply plugin: 'com.novoda.build-properties'
apply plugin: 'jacoco-android'
@ -163,6 +164,7 @@ dependencies {
implementation 'org.jsoup:jsoup:1.10.2'
implementation "com.evernote:android-state:${state_version}"
implementation "petrov.kristiyan:colorpicker-library:1.1.4"
implementation 'com.apollographql.apollo:apollo-rx2-support:0.4.0'
compileOnly "org.projectlombok:lombok:${lombokVersion}"
kapt "io.requery:requery-processor:${requery}"
kapt "org.projectlombok:lombok:${lombokVersion}"

View File

@ -0,0 +1,164 @@
query PullRequestTimeline($owner: String!, $name: String!, $number: Int!){
repository(owner: $owner, name: $name) {
pullRequest(number: $number) {
timeline(first: 30) {
pageInfo {
hasNextPage
startCursor
endCursor
}
edges {
cursor
}
totalCount
nodes {
__typename
... on Commit {
committer {
user {
login
avatarUrl
url
}
}
oid
signature {
state
}
messageHeadlineHTML
status {
state
}
committedDate
url
}
... on PullRequestReview {
bodyHTML
}
... on IssueComment {
viewerCanUpdate
author {
login
avatarUrl
url
}
authorAssociation
createdAt
updatedAt
body
reactionGroups {
viewerHasReacted
content
users {
totalCount
}
}
}
... on ReviewRequestedEvent {
actor {
login
avatarUrl
}
subject {
login
avatarUrl
}
}
... on PullRequestReviewComment {
body
author {
login
}
}
... on ClosedEvent {
commit {
oid
}
actor {
login
avatarUrl
}
}
... on ReopenedEvent {
actor {
login
}
}
... on ReferencedEvent {
actor {
login
}
isCrossRepository
isDirectReference
subject {
... on Issue {
title
}
... on PullRequest {
title
}
}
}
... on LabeledEvent {
actor {
login
}
label {
color
name
}
}
... on RenamedTitleEvent {
actor {
login
avatarUrl
}
previousTitle
currentTitle
}
... on AssignedEvent {
createdAt
actor {
login
avatarUrl
}
user {
login
avatarUrl
}
}
... on MergedEvent {
createdAt
actor {
login
}
commit {
oid
}
mergeRefName
}
... on HeadRefDeletedEvent {
createdAt
actor {
login
avatarUrl
}
headRefName
}
... on HeadRefRestoredEvent {
createdAt
actor {
login
avatarUrl
}
}
}
}
}
}
rateLimit {
cost
remaining
limit
}
}

File diff suppressed because it is too large Load Diff

View File

@ -4,12 +4,14 @@ import android.app.Application;
import android.support.annotation.NonNull;
import android.support.v7.preference.PreferenceManager;
import com.apollographql.apollo.ApolloClient;
import com.crashlytics.android.Crashlytics;
import com.crashlytics.android.core.CrashlyticsCore;
import com.fastaccess.data.dao.model.Models;
import com.fastaccess.helper.TypeFaceHelper;
import com.fastaccess.provider.colors.ColorsProvider;
import com.fastaccess.provider.emoji.EmojiManager;
import com.fastaccess.provider.rest.RestProvider;
import com.fastaccess.provider.tasks.notification.NotificationSchedulerJobTask;
import com.miguelbcr.io.rx_billing_service.RxBillingService;
@ -32,6 +34,7 @@ import shortbread.Shortbread;
public class App extends Application {
private static App instance;
private ReactiveEntityStore<Persistable> dataStore;
private ApolloClient apolloClient;
@Override public void onCreate() {
super.onCreate();
@ -87,4 +90,14 @@ public class App extends Application {
}
return dataStore;
}
public ApolloClient getApolloClient() {
if (apolloClient == null) {
apolloClient = ApolloClient.builder()
.serverUrl("https://api.github.com/graphql")
.okHttpClient(RestProvider.provideOkHttpClient())
.build();
}
return apolloClient;
}
}

View File

@ -29,6 +29,7 @@ buildscript {
classpath 'com.novoda:gradle-build-properties-plugin:0.3'
classpath 'com.dicedmelon.gradle:jacoco-android:0.1.2'
classpath 'io.fabric.tools:gradle:1.22.2'
classpath 'com.apollographql.apollo:gradle-plugin:0.4.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}