Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a14c1918 authored by Nihar Thakkar's avatar Nihar Thakkar Committed by Sumit Pundir
Browse files

Implemented OAuth token support. Refreshing of tokens not working yet.

parent 19643788
Loading
Loading
Loading
Loading
+30 −10
Original line number Diff line number Diff line
@@ -60,11 +60,21 @@ class DavAddressBook @JvmOverloads constructor(
        serializer.endDocument()

        followRedirects {
            if (accessToken.isNullOrEmpty()) {
                httpClient.newCall(Request.Builder()
                        .url(location)
                        .method("REPORT", RequestBody.create(MIME_XML, writer.toString()))
                        .header("Depth", "1")
                        .build()).execute()
            }
            else {
                httpClient.newCall(Request.Builder()
                        .url(location)
                        .method("REPORT", RequestBody.create(MIME_XML, writer.toString()))
                        .header("Depth", "1")
                        .header("Authorization", "Bearer $accessToken")
                        .build()).execute()
            }
        }.use { response ->
            return processMultiStatus(response, callback)
        }
@@ -118,11 +128,21 @@ class DavAddressBook @JvmOverloads constructor(
        serializer.endDocument()

        followRedirects {
	    if (accessToken.isNullOrEmpty()) {
                httpClient.newCall(Request.Builder()
                        .url(location)
                        .method("REPORT", RequestBody.create(MIME_XML, writer.toString()))
                        .header("Depth", "0")       // "The request MUST include a Depth: 0 header [...]"
                        .build()).execute()
            }
            else {
                httpClient.newCall(Request.Builder()
                        .url(location)
                        .method("REPORT", RequestBody.create(MIME_XML, writer.toString()))
                        .header("Depth", "0")       // "The request MUST include a Depth: 0 header [...]"
                        .header("Authorization", "Bearer $accessToken")
                        .build()).execute()
            }
        }.use {
            return processMultiStatus(it, callback)
        }
+28 −9
Original line number Diff line number Diff line
@@ -91,11 +91,21 @@ class DavCalendar @JvmOverloads constructor(
        serializer.endDocument()

        followRedirects {
	    if (accessToken.isNullOrEmpty()) {
                httpClient.newCall(Request.Builder()
                        .url(location)
                        .method("REPORT", RequestBody.create(MIME_XML, writer.toString()))
                        .header("Depth", "1")
                        .build()).execute()
            }
            else {
                httpClient.newCall(Request.Builder()
                        .url(location)
                        .method("REPORT", RequestBody.create(MIME_XML, writer.toString()))
                        .header("Depth", "1")
                        .header("Authorization", "Bearer $accessToken")
                        .build()).execute()
            }
        }.use {
            return processMultiStatus(it, callback)
        }
@@ -144,10 +154,19 @@ class DavCalendar @JvmOverloads constructor(
        serializer.endDocument()

        followRedirects {
	    if (accessToken.isNullOrEmpty()) {
                httpClient.newCall(Request.Builder()
                        .url(location)
                        .method("REPORT", RequestBody.create(MIME_XML, writer.toString()))
                        .build()).execute()
            }
            else {
                httpClient.newCall(Request.Builder()
                        .url(location)
                        .method("REPORT", RequestBody.create(MIME_XML, writer.toString()))
                        .header("Authorization", "Bearer $accessToken")
                        .build()).execute()
            }
        }.use {
            return processMultiStatus(it, callback)
        }
+16 −9
Original line number Diff line number Diff line
@@ -9,10 +9,7 @@ package foundation.e.dav4jvm
import foundation.e.dav4jvm.exception.DavException
import foundation.e.dav4jvm.exception.HttpException
import foundation.e.dav4jvm.property.SyncToken
import okhttp3.HttpUrl
import okhttp3.OkHttpClient
import okhttp3.Request
import okhttp3.RequestBody
import okhttp3.*
import java.io.StringWriter
import java.util.logging.Logger

@@ -82,11 +79,21 @@ open class DavCollection @JvmOverloads constructor(
        serializer.endDocument()

        followRedirects {
	    if (accessToken.isNullOrEmpty()) {
                httpClient.newCall(Request.Builder()
                        .url(location)
                        .method("REPORT", RequestBody.create(MIME_XML, writer.toString()))
                        .header("Depth", "0")
                        .build()).execute()
            }
            else {
                httpClient.newCall(Request.Builder()
                        .url(location)
                        .method("REPORT", RequestBody.create(MIME_XML, writer.toString()))
                        .header("Depth", "0")
                        .header("Authorization", "Bearer $accessToken")
                        .build()).execute()
            }
        }.use {
            return processMultiStatus(it, callback)
        }
+50 −14
Original line number Diff line number Diff line
@@ -160,10 +160,18 @@ open class DavResource @JvmOverloads constructor(
        if(forceOverride) requestBuilder.header("Overwrite", "F")

        followRedirects {
	    if (accessToken.isNullOrEmpty()) {
                requestBuilder.url(location)
            	httpClient.newCall(requestBuilder
                    	.build())
                    	.execute()
		} else {
	       	requestBuilder.url(location)
		requestBuilder.header("Authorization", "Bearer $accessToken")
                httpClient.newCall(requestBuilder
                        .build())
                        .execute()
	    }
        }.use{ response ->
            checkStatus(response)

@@ -188,10 +196,19 @@ open class DavResource @JvmOverloads constructor(
        val rqBody = if (xmlBody != null) RequestBody.create(MIME_XML, xmlBody) else null

        followRedirects {
	    if (accessToken.isNullOrEmpty()) {
                httpClient.newCall(Request.Builder()
                        .method("MKCOL", rqBody)
                        .url(location)
                        .build()).execute()
            }
            else {
                httpClient.newCall(Request.Builder()
                        .method("MKCOL", rqBody)
                        .url(location)
                        .header("Authorization", "Bearer $accessToken")
                        .build()).execute()
            }
        }.use { response ->
            checkStatus(response)
            callback(response)
@@ -213,12 +230,23 @@ open class DavResource @JvmOverloads constructor(
    @Throws(IOException::class, HttpException::class)
    fun get(accept: String, callback: (response: Response) -> Unit) {
        followRedirects {
	    if (accessToken.isNullOrEmpty()) {
                httpClient.newCall(Request.Builder()
                        .get()
                        .url(location)
                        .header("Accept", accept)
                        .header("Accept-Encoding", "identity")    // disable compression because it can change the ETag
                        .build()).execute()
            }
            else {
                httpClient.newCall(Request.Builder()
                        .get()
                        .url(location)
                        .header("Accept", accept)
                        .header("Accept-Encoding", "identity")    // disable compression because it can change the ETag
                        .header("Authorization", "Bearer $accessToken")
                        .build()).execute()
            }
        }.use { response ->
            checkStatus(response)
            callback(response)
@@ -252,6 +280,10 @@ open class DavResource @JvmOverloads constructor(
                // don't overwrite anything existing
                builder.header("If-None-Match", "*")

	    if (!accessToken.isNullOrEmpty()) {
                builder.header("Authorization", "Bearer $accessToken")
            }

            httpClient.newCall(builder.build()).execute()
        }.use { response ->
            checkStatus(response)
@@ -281,6 +313,10 @@ open class DavResource @JvmOverloads constructor(
            if (ifMatchETag != null)
                builder.header("If-Match", QuotedStringUtils.asQuotedString(ifMatchETag))

	    if (!accessToken.isNullOrEmpty()) {
                builder.header("Authorization", "Bearer $accessToken")
            }

            httpClient.newCall(builder.build()).execute()
        }.use { response ->
            checkStatus(response)