Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@enginebai
Created December 21, 2018 12:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save enginebai/a6919998cc215548a8ae04d5fff8e619 to your computer and use it in GitHub Desktop.
Save enginebai/a6919998cc215548a8ae04d5fff8e619 to your computer and use it in GitHub Desktop.
class NewMessageCreationWorker(var context: Context, params: WorkerParameters) : Worker(context, params) {
private newMessageDb: newMessageDb = ... // from dependency injection
override fun doWork(): Result {
var jobId = inputData.getString(NewMessage.KEY_JOB_ID)?.run { this } ?: ""
var newMessage = newMessageDb.find(jobId)
return newMessage?.run {
val postMesageResponse = postMessage(this)
if (response.isSuccessful) {
startUploadMediaFile(this, response)
Result.SUCCESS
} else {
Result.RETRY
}
} ?: kotlin.run { Result.FAILURE }
}
private fun postMessage(newMessage: NewMessage): Response<Void> {
... // send POST /message request and return response
}
private fun startUploadMediaFile(newMessage: NewMessage, response: Response<Void>) {
val uploadUrl: String = ... // parse media upload link from response
FileUploader.submitMediaUploadWork(newMessage, uploadUrl)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment