Skip to content
This repository has been archived by the owner on Oct 3, 2020. It is now read-only.

Commit

Permalink
update db code done
Browse files Browse the repository at this point in the history
  • Loading branch information
fulton committed Feb 8, 2020
1 parent 6fc5d2c commit 0cab510
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 4 deletions.
4 changes: 3 additions & 1 deletion src/main/java/com/andromeda/araserver/Run.kt
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,9 @@ object Run : NanoHTTPD(Port().main()) {

when {
sessionUri.startsWith("/news/us") -> main2 = NewsCache.usNews
sessionUri.startsWith("/posupdate/") ->println(session.parameters)
sessionUri.startsWith("/postupdate/") ->UpdateDB().arrayUpdate(sessionUri,
session.parameters["data"]?.get(0)!!
)
sessionUri.startsWith("/news/tech") -> main2 = NewsCache.tech
sessionUri.startsWith("/news/money") -> main2 = NewsCache.money
sessionUri.startsWith("/news/mex") -> main2 = NewsCache.mexNews
Expand Down
33 changes: 30 additions & 3 deletions src/main/java/com/andromeda/araserver/pages/UpdateDB.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,13 @@
package com.andromeda.araserver.pages

import com.andromeda.araserver.util.OutputModel
import com.google.gson.Gson
import com.google.gson.reflect.TypeToken
import com.microsoft.azure.documentdb.*
import org.json.JSONObject
import javax.json.JsonObject
import javax.json.JsonValue
import java.util.*
import kotlin.collections.ArrayList


class UpdateDB {
fun main(url:String): String {
Expand All @@ -26,12 +30,35 @@ class UpdateDB {
return "ok"
}

fun update(client:DocumentClient, key: String, id:String, prop:String, newVal:String){
private fun update(client:DocumentClient, key: String, id:String, prop:String, newVal:Any){

val options = FeedOptions()
options.partitionKey = PartitionKey("user-$key")
val queryResults: FeedResponse<Document> = client.queryDocuments("/dbs/Ara-android-database/colls/Ara-android-collection", "SELECT * FROM c WHERE c.id = '$id'", options)
val doc:Document =queryResults.queryIterable.first()
(doc.get("document") as JSONObject).putOpt(prop, newVal)
client.replaceDocument(doc, RequestOptions())
}
fun arrayUpdate(url: String, postData:String): String {
val mainVal = url.replace("/postupdate/", "")
val actions = mainVal.split("&")
var newVal = fromJson(postData)
var id:String? = null
var key:String? = null
var prop:String? = null
for (i in actions) when {
i.startsWith("id=") -> id = i.replace("id=", "")
i.startsWith("user=") -> key = i.replace("user=", "")
i.startsWith("prop=") -> prop = i.replace("prop=", "")

}
val dbLink = System.getenv("IOTDB")
val client = DocumentClient("https://ara-account-data.documents.azure.com:443/", dbLink, ConnectionPolicy(), ConsistencyLevel.Session)
update(client, key!!, id!!, prop!!, newVal)
return "ok"
}
fun fromJson(jsontxt: String?): Any {
val gson = Gson()
return gson.fromJson(jsontxt, object : TypeToken<Any>(){}.type)
}
}

0 comments on commit 0cab510

Please sign in to comment.