Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix part of #5: Abstraction on top of Oppia GAE for Topic Management System #75

Closed
wants to merge 3 commits into from
Closed

Fix part of #5: Abstraction on top of Oppia GAE for Topic Management System #75

wants to merge 3 commits into from

Conversation

rt4914
Copy link
Contributor

@rt4914 rt4914 commented Aug 27, 2019

Explanation

The PR contains data module, necessary libraries for API calls and Topic Management System models, retrofit instance and interceptor.

Also this PR was earlier on #61 but because of merge conflicts I have introduced this new PR.

Libraries Used

  1. Retrofit: implementation 'com.squareup.retrofit2:retrofit:2.5.0'
    This library is responsible for making API calls to Oppia backend
  2. Retrofit Moshi Converter: implementation 'com.squareup.retrofit2:converter-moshi:2.5.0'
    This library is the actual deserializer that we are using over GSON.
  3. Moshi Kotlin Support: implementation"com.squareup.moshi:moshi-kotlin:1.8.0"
    Moshi Kotlin support library for using Moshi in Kotlin.

Issues

The models in this PR does not have custom field names because @JSON in Moshi which is similar to @SerializedName in GSON is not working with Kotlin Moshi.

Checklist

Work items:

  • Identify among all existing GAE endpoints (get/post), which we can use during the prototype
  • Loosely identify data missing from the above endpoints (this bucket is expected to be small/non-existent), and identify which endpoints have data which needs to be changed for the Android app
  • Specify the Retrofit interfaces to represent all of the identified endpoints (simple interfaces/no annotations or return types needed beyond pseudocode)
  • Identify** what data (via pseudocode data structures/YAML/JSON/etc) we will be passing along from the backend through these endpoints
  • Identify how error handling will work (e.g. what Retrofit does), whether RPC retry is supported & how it is/can be configured, etc.
  • Determine the testing strategy for the GAE endpoints for downstream app components

@rt4914 rt4914 changed the base branch from develop to introduce-data-module August 27, 2019 10:48
@rt4914
Copy link
Contributor Author

rt4914 commented Aug 27, 2019

@BenHenning PTAL.

Also all the comments mentioned in the #61 PR have been covered in this.

@BenHenning you will need to check NetworkInterceptorTest.kt thoroughly. I have checked the test cases and they are working correctly.

@BenHenning
Copy link
Member

Thanks @rt4914! I will follow up in #78 since it replaces this.

@BenHenning BenHenning closed this Aug 28, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants