diff --git a/app/src/main/java/com/eusecom/attendance/fragment/ApproveListFragment.java b/app/src/main/java/com/eusecom/attendance/fragment/ApproveListFragment.java index 55300e9..400af3e 100644 --- a/app/src/main/java/com/eusecom/attendance/fragment/ApproveListFragment.java +++ b/app/src/main/java/com/eusecom/attendance/fragment/ApproveListFragment.java @@ -8,6 +8,7 @@ import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; +import android.util.Pair; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -16,10 +17,17 @@ import android.widget.TextView; import android.widget.Toast; +import com.eusecom.attendance.Constants; import com.eusecom.attendance.NewPostActivity; import com.eusecom.attendance.SettingsActivity; import com.eusecom.attendance.models.Attendance; import com.eusecom.attendance.models.DeletedAbs; +import com.eusecom.attendance.retrofit.RfContributor; +import com.eusecom.attendance.retrofit.RfEtestApi; +import com.eusecom.attendance.retrofit.RfEtestService; +import com.eusecom.attendance.retrofit.RfGithubApi; +import com.eusecom.attendance.retrofit.RfGithubService; +import com.eusecom.attendance.retrofit.RfUser; import com.eusecom.attendance.viewholder.ApproveViewHolder; import com.firebase.ui.database.FirebaseRecyclerAdapter; import com.google.firebase.auth.FirebaseAuth; @@ -39,6 +47,15 @@ import java.util.HashMap; import java.util.Map; +import io.reactivex.Observable; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.disposables.CompositeDisposable; +import io.reactivex.observers.DisposableObserver; +import io.reactivex.schedulers.Schedulers; + +import static android.text.TextUtils.isEmpty; +import static java.lang.String.format; + public abstract class ApproveListFragment extends Fragment { private static final String TAG = "ApproveListFragment"; @@ -58,6 +75,18 @@ public ApproveListFragment() {} boolean isCancelable, isrunning; String timestampx; + private RfEtestApi _githubService; + private CompositeDisposable _disposables; + + @Override + public void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + String githubToken = Constants.GITHUB_API_KEY; + _githubService = RfEtestService.createGithubService(githubToken); + + _disposables = new CompositeDisposable(); + } + @Override public View onCreateView (LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { @@ -259,6 +288,7 @@ public void onDestroy() { if (mAdapter != null) { mAdapter.cleanup(); } + _disposables.dispose(); } public String getUid() { @@ -271,7 +301,43 @@ public String getUid() { // [START deletefan_out] private void approvePost(String postkey, int anodaj) { + _disposables.add(_githubService.contributors("square", "retrofit") + .flatMap(Observable::fromIterable) + .flatMap(contributor -> { + Observable _userObservable = _githubService.user(contributor.login) + .filter(user -> !isEmpty(user.name) && !isEmpty(user.email)); + + return Observable.zip(_userObservable, + Observable.just(contributor), + Pair::new); + }) + .subscribeOn(Schedulers.newThread()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribeWith(new DisposableObserver>() { + @Override + public void onComplete() { + Log.d(TAG, "Retrofit call 2 completed "); + + } + @Override + public void onError(Throwable e) { + Log.d(TAG, "error while getting the list of contributors along with full " + "names"); + } + + @Override + public void onNext(Pair pair) { + RfUser user = ((Pair)pair).first; + RfContributor contributor = ((Pair)pair).second; + + + String snext = " " + user.name + " " + + user.email + " " + + contributor.contributions; + + Log.d(TAG, "onnext " + snext); + } + })); } // [END delete_fan_out] diff --git a/app/src/main/java/com/eusecom/attendance/fragments/RetrofitFragment.java b/app/src/main/java/com/eusecom/attendance/fragments/RetrofitFragment.java index 27a875b..adff7fb 100644 --- a/app/src/main/java/com/eusecom/attendance/fragments/RetrofitFragment.java +++ b/app/src/main/java/com/eusecom/attendance/fragments/RetrofitFragment.java @@ -12,6 +12,7 @@ import android.widget.ListView; +import com.eusecom.attendance.Constants; import com.eusecom.attendance.R; import com.eusecom.attendance.retrofit.RfContributor; import com.eusecom.attendance.retrofit.RfGithubApi; @@ -47,7 +48,7 @@ public class RetrofitFragment extends Fragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - String githubToken = getResources().getString(R.string.github_oauth_token); + String githubToken = Constants.GITHUB_API_KEY; _githubService = RfGithubService.createGithubService(githubToken); _disposables = new CompositeDisposable(); diff --git a/app/src/main/java/com/eusecom/attendance/retrofit/RfEtestApi.java b/app/src/main/java/com/eusecom/attendance/retrofit/RfEtestApi.java new file mode 100644 index 0000000..26e3ef4 --- /dev/null +++ b/app/src/main/java/com/eusecom/attendance/retrofit/RfEtestApi.java @@ -0,0 +1,108 @@ +package com.eusecom.attendance.retrofit; + +import java.util.List; + +import io.reactivex.Observable; +import retrofit2.http.Field; +import retrofit2.http.FormUrlEncoded; +import retrofit2.http.GET; +import retrofit2.http.Path; +import retrofit2.http.Query; + +/* + $value) { + $headerStringValue = " ".$headerStringValue.$value." "; + } + + $user = $_GET['user']; + + $sqlt = << + */ + +public interface RfEtestApi { + + /** + * See https://developer.github.com/v3/repos/#list-contributors + */ + @GET("/attendance/contributor.php") + Observable> contributors(@Query("owner") String owner, + @Query("repo") String repo); + + @GET("/attendance/contributor.json") + Observable> contributors_json(@Query("owner") String owner, + @Query("repo") String repo); + + @GET("/attendance/{owner}/{repo}/contributor.json") + Observable> contributors_withPath(@Path("owner") String owner, + @Path("repo") String repo); + + @GET("/repos/{owner}/{repo}/contributors") + Observable> contributors_orig(@Path("owner") String owner, + @Path("repo") String repo); + + @GET("/repos/{owner}/{repo}/contributors") + List getContributors(@Path("owner") String owner, @Path("repo") String repo); + + /** + * See https://developer.github.com/v3/users/ + */ + @GET("/attendance/user.php") + Observable user(@Query("user") String user); + + @GET("/users/{user}") + Observable user_orig(@Path("user") String user); + + /** + * See https://developer.github.com/v3/users/ + */ + @GET("/users/{user}") + RfUser getUser(@Path("user") String user); +} \ No newline at end of file diff --git a/app/src/main/java/com/eusecom/attendance/retrofit/RfEtestService.java b/app/src/main/java/com/eusecom/attendance/retrofit/RfEtestService.java new file mode 100644 index 0000000..ae0894d --- /dev/null +++ b/app/src/main/java/com/eusecom/attendance/retrofit/RfEtestService.java @@ -0,0 +1,40 @@ +package com.eusecom.attendance.retrofit; + +import android.text.TextUtils; + +import com.jakewharton.retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory; + +import okhttp3.OkHttpClient; +import okhttp3.Request; +import retrofit2.Retrofit; +import retrofit2.converter.gson.GsonConverterFactory; + +import static java.lang.String.format; + +public class RfEtestService { + + private RfEtestService() { + } + + public static RfEtestApi createGithubService(final String githubToken) { + Retrofit.Builder builder = new Retrofit.Builder().addCallAdapterFactory(RxJava2CallAdapterFactory.create()) + .addConverterFactory(GsonConverterFactory.create()) + .baseUrl("http://www.eshoptest.sk"); + //.baseUrl("https://api.github.com"); + + if (!TextUtils.isEmpty(githubToken)) { + + OkHttpClient client = new OkHttpClient.Builder().addInterceptor(chain -> { + Request request = chain.request(); + Request newReq = request.newBuilder() + .addHeader("Authorization", format("token %s", githubToken)) + .build(); + return chain.proceed(newReq); + }).build(); + + builder.client(client); + } + + return builder.build().create(RfEtestApi.class); + } +} diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f348804..8b99ad9 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -211,8 +211,7 @@ No cheeses found search - - e4e7cedff598bca8000d164864a5826edf09572b +