require "json" module Guff::API::TestAPI private def do_test_version( context : HTTP::Server::Context, args : Hash(String, String) ) {version: Guff::VERSION}.to_json end private def do_test_get_posts( context : HTTP::Server::Context, args : Hash(String, String) ) [{foo: "bar"}, {foo: "asdf"}].to_json end private def do_test_get_users( context : HTTP::Server::Context, args : Hash(String, String) ) # get user_id user_id = 0_i64 with_session(context) do |session| user_id = (session["user_id"]? || "0").to_i64 false end # get users users = @models.user.get_users # return result { "users": users, "user_id": user_id } end private def do_test_set_user( context : HTTP::Server::Context, args : Hash(String, String) ) with_session(context) do |session| session["user_id"] = args["user_id"] true end { ok: true } end private def do_test_error( context : HTTP::Server::Context, args : Hash(String, String) ) raise "some random error" end private def do_test_add_user( context : HTTP::Server::Context, args : Hash(String, String) ) user_id = @models.user.add_user(args["name"].not_nil!, active: args["active"]? ? args["active"] == "t" : nil, role: args["role"]?, email: args["email"]?, password: args["password"]?, ) { "ok": true, "user_id": user_id } end private def do_test_update_user( context : HTTP::Server::Context, args : Hash(String, String) ) @models.user.update_user(args["user_id"].to_i64, name: args["name"]? ? args["name"] : nil, active: args["active"]? ? args["active"] == "t" : nil, role: args["role"]? ? args["role"] : nil ) { "ok": true } end private def do_test_add_login( context : HTTP::Server::Context, args : Hash(String, String) ) @models.user.add_login(args["user_id"].to_i, email: args["name"], password: args["password"], ) { "ok": true } end private def do_test_remove_login( context : HTTP::Server::Context, args : Hash(String, String) ) @models.user.remove_login(args["user_id"].to_i) { "ok": true } end private def do_test_login( context : HTTP::Server::Context, args : Hash(String, String) ) user_id = @models.user.login(args["email"], args["password"]).to_i { "ok": true, "user_id": user_id } end end