nim-theNewWeb/test/testJson.nim

84 lines
2.2 KiB
Nim
Raw Normal View History

import std/[asyncdispatch, httpclient]
import std/json
import std/options
import std/strformat
import jester
# type
# joplin_notebooks* = object
# id: seq[string]
# parent_id: seq[string]
# title: seq[string]
# proc get_joplin_notebooks*(): Future[joplin_notebooks] {.async.} =
# var j_nb: joplin_notebooks
# var count = 0
# var client = newAsyncHttpClient()
# var json = await client.getContent("http://localhost:41184/folders?token=e5f6644fbf6a97ddc55648dae72b11caecda6c6642d8ce0d3b20129b89b196385737eb908923542c3343649ebbf865b55bda031ab4c3a16edc7723ef2ad77d8f")
# let joplin_notebooks_Json = parseJson(json)
# for nb in joplin_notebooks_Json["items"]:
# j_nb.id.add(nb["id"].getstr)
# j_nb.parent_id.add(nb["parent_id"].getstr)
# j_nb.title.add(nb["title"].getstr)
# count += 1
# echo joplin_notebooks_Json["has_more"]
# return j_nb
# Setup user data
type
joplin_notebooks* = object
id*, parent_id*, title*: seq[string]
req*: Request
proc get_joplin_notebooks*(token:string): Future[joplin_notebooks] {.async.} =
# Variables
var j_nb: joplin_notebooks
var has_more: bool = true
var page: int = 1
var url: string
var client = newAsyncHttpClient()
# make sure to check all pages
while has_more == true:
# request joplin API for notebooks
url = fmt"http://localhost:41184/folders?page={page}&token={token}"
var json = await client.getContent(url)
# parse jason
let joplin_notebooks_Json = parseJson(json)
# valider qu'il n'y a plus de page
if not joplin_notebooks_Json["has_more"].getBool:
has_more = false
# store json info into an object
var count: int = 1
for nb in joplin_notebooks_Json["items"]:
j_nb.id.add(nb["id"].getstr)
j_nb.parent_id.add(nb["parent_id"].getstr)
j_nb.title.add(nb["title"].getstr)
count += 1
# aller à la page suivante
page += 1
return j_nb
# var all_notebooks = ""
var nb: joplin_notebooks
nb = waitFor get_joplin_notebooks("e5f6644fbf6a97ddc55648dae72b11caecda6c6642d8ce0d3b20129b89b196385737eb908923542c3343649ebbf865b55bda031ab4c3a16edc7723ef2ad77d8f")
# echo nb.title[1]
for i in nb.title:
echo i
echo nb.title