mirror of
https://github.com/divkit/divkit.git
synced 2026-05-07 20:02:32 +00:00
add documentation for cloud functions
commit_hash:91ee6d5933ef8c09be1c4f3fbd72ed7d689931e0
This commit is contained in:
@@ -20081,6 +20081,13 @@
|
||||
"readme_pictures/search.png":"divkit/public/readme_pictures/search.png",
|
||||
"readme_pictures/smart_cam.png":"divkit/public/readme_pictures/smart_cam.png",
|
||||
"readme_pictures/ya_browser.png":"divkit/public/readme_pictures/ya_browser.png",
|
||||
"samples/cloud-functions/kotlin-dsl/build.gradle.kts":"divkit/public/samples/cloud-functions/kotlin-dsl/build.gradle.kts",
|
||||
"samples/cloud-functions/kotlin-dsl/build.sh":"divkit/public/samples/cloud-functions/kotlin-dsl/build.sh",
|
||||
"samples/cloud-functions/kotlin-dsl/src/main/kotlin/cloud/divkit/Handler.kt":"divkit/public/samples/cloud-functions/kotlin-dsl/src/main/kotlin/cloud/divkit/Handler.kt",
|
||||
"samples/cloud-functions/kotlin-dsl/src/main/kotlin/cloud/divkit/Request.kt":"divkit/public/samples/cloud-functions/kotlin-dsl/src/main/kotlin/cloud/divkit/Request.kt",
|
||||
"samples/cloud-functions/kotlin-dsl/src/main/kotlin/cloud/divkit/Response.kt":"divkit/public/samples/cloud-functions/kotlin-dsl/src/main/kotlin/cloud/divkit/Response.kt",
|
||||
"samples/cloud-functions/kotlin-dsl/src/main/kotlin/cloud/divkit/Utils.kt":"divkit/public/samples/cloud-functions/kotlin-dsl/src/main/kotlin/cloud/divkit/Utils.kt",
|
||||
"samples/cloud-functions/simple/Handler.kt":"divkit/public/samples/cloud-functions/simple/Handler.kt",
|
||||
"schema/common.json":"divkit/public/schema/common.json",
|
||||
"schema/div-absolute-edge-insets.json":"divkit/public/schema/div-absolute-edge-insets.json",
|
||||
"schema/div-accessibility.json":"divkit/public/schema/div-accessibility.json",
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
plugins {
|
||||
kotlin("jvm") version "2.0.0"
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation("com.fasterxml.jackson.core:jackson-annotations:2.18.3")
|
||||
implementation("com.fasterxml.jackson.core:jackson-databind:2.18.3")
|
||||
implementation("com.yandex.div:kotlin-json-builder:31.0.0")
|
||||
}
|
||||
Executable
+30
@@ -0,0 +1,30 @@
|
||||
#!/bin/bash
|
||||
|
||||
SCRIPT_DIR=`dirname ${0}`
|
||||
ARCHIVE_NAME="build"
|
||||
|
||||
while getopts ":n:" option; do
|
||||
case $option in
|
||||
n)
|
||||
ARCHIVE_NAME="$OPTARG"
|
||||
;;
|
||||
|
||||
\?)
|
||||
echo "Invalid option: -$OPTARG" >&2
|
||||
exit 1
|
||||
;;
|
||||
|
||||
:)
|
||||
echo "Option -$OPTARG requires an argument" >&2
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
|
||||
if [[ $OPTARG == -* ]]; then
|
||||
echo "Option $option has invalid argument: $OPTARG" >&2
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
cd $SCRIPT_DIR
|
||||
zip -rDX $ARCHIVE_NAME.zip * -x build.sh -x *.zip -x build -x .idea
|
||||
@@ -0,0 +1,90 @@
|
||||
package cloud.divkit
|
||||
|
||||
import divkit.dsl.Divan
|
||||
import divkit.dsl.bold
|
||||
import divkit.dsl.border
|
||||
import divkit.dsl.center
|
||||
import divkit.dsl.color
|
||||
import divkit.dsl.container
|
||||
import divkit.dsl.data
|
||||
import divkit.dsl.divan
|
||||
import divkit.dsl.edgeInsets
|
||||
import divkit.dsl.fixedSize
|
||||
import divkit.dsl.medium
|
||||
import divkit.dsl.solidBackground
|
||||
import divkit.dsl.text
|
||||
import divkit.dsl.vertical
|
||||
import divkit.dsl.wrapContentSize
|
||||
|
||||
fun handle(request: Request): Response {
|
||||
val card = greetingCard()
|
||||
return Response(200, card.toJson())
|
||||
}
|
||||
|
||||
private fun greetingCard(): Divan {
|
||||
return divan {
|
||||
data(
|
||||
logId = "greeting",
|
||||
div = container(
|
||||
width = wrapContentSize(),
|
||||
height = wrapContentSize(),
|
||||
orientation = vertical,
|
||||
margins = edgeInsets(
|
||||
start = 16,
|
||||
top = 16,
|
||||
end = 16,
|
||||
bottom = 16
|
||||
),
|
||||
paddings = edgeInsets(
|
||||
start = 4,
|
||||
top = 4,
|
||||
end = 4,
|
||||
bottom = 4
|
||||
),
|
||||
background = listOf(
|
||||
solidBackground(color("#FF9000"))
|
||||
),
|
||||
border = border(
|
||||
cornerRadius = 8
|
||||
),
|
||||
items = listOf(
|
||||
text(
|
||||
width = wrapContentSize(),
|
||||
height = wrapContentSize(),
|
||||
alignmentHorizontal = center,
|
||||
fontSize = 20,
|
||||
fontWeight = bold,
|
||||
textColor = color("#FFFFFF"),
|
||||
text = "HELLO"
|
||||
),
|
||||
text(
|
||||
width = wrapContentSize(),
|
||||
height = wrapContentSize(),
|
||||
alignmentHorizontal = center,
|
||||
fontSize = 14,
|
||||
textColor = color("#FFFFFF"),
|
||||
text = "my name is"
|
||||
),
|
||||
text(
|
||||
width = fixedSize(120),
|
||||
height = fixedSize(48),
|
||||
margins = edgeInsets(
|
||||
top = 4
|
||||
),
|
||||
background = listOf(
|
||||
solidBackground(color("#FFFFFF"))
|
||||
),
|
||||
border = border(
|
||||
cornerRadius = 4
|
||||
),
|
||||
fontSize = 32,
|
||||
fontWeight = medium,
|
||||
textAlignmentHorizontal = center,
|
||||
textAlignmentVertical = center,
|
||||
text = "DivKit"
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package cloud.divkit
|
||||
|
||||
data class Request(
|
||||
val httpMethod: String?,
|
||||
val headers: Map<String, String> = mapOf(),
|
||||
val body: String = ""
|
||||
)
|
||||
@@ -0,0 +1,6 @@
|
||||
package cloud.divkit
|
||||
|
||||
data class Response(
|
||||
val statusCode: Int,
|
||||
val body: String
|
||||
)
|
||||
@@ -0,0 +1,8 @@
|
||||
package cloud.divkit
|
||||
|
||||
import com.fasterxml.jackson.databind.json.JsonMapper
|
||||
import divkit.dsl.Divan
|
||||
|
||||
fun Divan.toJson(): String {
|
||||
return JsonMapper.builder().build().writeValueAsString(this)
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package cloud.divkit
|
||||
|
||||
data class Request(
|
||||
val httpMethod: String?,
|
||||
val headers: Map<String, String> = mapOf(),
|
||||
val body: String = ""
|
||||
)
|
||||
|
||||
data class Response(
|
||||
val statusCode: Int,
|
||||
val body: String
|
||||
)
|
||||
|
||||
fun handle(request: Request): Response {
|
||||
return Response(200, card)
|
||||
}
|
||||
|
||||
private const val card = """
|
||||
{
|
||||
"log_id": "cloud_divkit",
|
||||
"states": [
|
||||
{
|
||||
"state_id": 0,
|
||||
"div": {
|
||||
"type": "text",
|
||||
"text": "Hello, Username!"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
"""
|
||||
Reference in New Issue
Block a user