api.tpl 957 B

12345678910111213141516171819202122
  1. package {{.Pkg}}
  2. import com.google.gson.Gson
  3. object {{with .Info}}{{.Title}}{{end}}{
  4. {{range .Types}}
  5. data class {{.Name}}({{$length := (len .Members)}}{{range $i,$item := .Members}}
  6. val {{with $item}}{{lowCamelCase .Name}}: {{parseType .Type.Name}}{{end}}{{if ne $i (add $length -1)}},{{end}}{{end}}
  7. ){{end}}
  8. {{with .Service}}
  9. {{range .Routes}}suspend fun {{routeToFuncName .Method .Path}}({{with .RequestType}}{{if ne .Name ""}}
  10. req:{{.Name}},{{end}}{{end}}
  11. onOk: (({{with .ResponseType}}{{.Name}}{{end}}) -> Unit)? = null,
  12. onFail: ((String) -> Unit)? = null,
  13. eventually: (() -> Unit)? = null
  14. ){
  15. apiRequest("{{upperCase .Method}}","{{.Path}}",{{with .RequestType}}{{if ne .Name ""}}body=req,{{end}}{{end}} onOk = { {{with .ResponseType}}
  16. onOk?.invoke({{if ne .Name ""}}Gson().fromJson(it,{{.Name}}::class.java){{end}}){{end}}
  17. }, onFail = onFail, eventually =eventually)
  18. }
  19. {{end}}{{end}}
  20. }