aboutsummaryrefslogtreecommitdiff
path: root/src/guff/api/test.cr
blob: 79d2d2ef0776796ed17a0848bd40ddba443d5a1e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
require "json"

module Guff
  module API
    module 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

      MOCK_USERS = [{
        "id":     "0",
        "name":   "Guest",
        "active": true,
      }, {
        "id":     "1",
        "name":   "Admin",
        "active": false,
      }, {
        "id":     "2",
        "name":   "Test User 1",
        "active": false,
      }, {
        "id":     "3",
        "name":   "Test User 2",
        "active": false,
      }, {
        "id":     "4",
        "name":   "Test User<<<<>>>>>&&&&&&2",
        "active": false,
      }]

      private def do_test_get_users(
        context : HTTP::Server::Context,
        args    : Hash(String, String)
      )
        user_id = "0"
        with_session(context) do |session|
          user_id = session["user_id"]? || "0"
          false
        end

        # build result
        users = MOCK_USERS.map { |row|
          row.merge({ "active": (row["id"] == user_id) })
        }

        # return result
        { "users": users }
      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
    end
  end
end