aboutsummaryrefslogtreecommitdiff
path: root/README.md
blob: ea542198a2dd761ce4e751721a62a357b13a14fe (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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
## Methods
- GET `/`
  - Response
    - 200 Ok
      - HTML `"This is a POKO server"`
- GET `/user/<id>`
  - Response
    - 200 Ok
      - JSON `{"name": "NAME", "id": "ID"}`
    - 404 Not Found
      - JSON `"Not Found"`
- GET `/user/by_name/<name>`
  - Response
    - 200 Ok
      - JSON `[{"name": "NAME", "id": "ID"}, ...]`
    - 400 Not Found
      - JSON `"Not Found"`
- GET `/user/list`
    - Same as GET `/user/by_name/`
- POST `/user/register`
  - Request
    - JSON `{"name":"NAME", "password": "PASSWORD", "id": "ID", "key": "REGISTRATION KEY"}`
      - ID is optional
      - A new server with a new database has one key "ADMIN" which creates an admin user
  - Response
    - 201 Created
      - JSON `{"name":"NAME", "id": "ID"}`
    - 400 Bad Request
      - JSON `"UID is taken"`
      - JSON `"Invalid Username"`
    - 500 Internal Server Error
      - JSON `"No available UID left"`
      - JSON `"UID length is incorrect"`
      - JSON `"UID String is not valid"`
      - JSON `"Invalid key"`
- POST `/user/get`
  - Request
    - JSON `{"id": "ID", "session": "SESSION_KEY"}`
  - Response
    - 200 Ok
      - JSON `{"name": "NAME", "id": "ID", is_admin: bool, tokovec: [{"color": "COLOR", "amount": 2}, ..]}`
    - 404 Not Found
      - JSON `"Not Found"`
      - JSON `"Not Authenticated"`
- POST `/user/login`
  - Request
    - JSON `{"id": "ID", "password": "PASSWORD", "clientid": "CLIENT_ID"}`
  - Response
    - 200 Ok
      - JSON `"SESSION_KEY"`
        - The session key is needed for any authenticated action
    - 401 Unauthorized
        - JSON `"Could not login"`
- POST `/user/logout`
  - Request
    - JSON `{"id": "ID", "session": "SESSION_KEY"}`
  - Response
    - 200 Ok
    - 401 Unauthorized
      - JSON `"Not Authenticated"`
- POST `/user/logout/all`
  - Request
    - JSON `{"id": "ID", "session": "SESSION_KEY"}`
  - Response
    - 200 Ok
      - JSON `"Logged out of everything"`
    - 401 Unauthorized
      - JSON `"Not Authenticated"`
- POST `/user/sessions`
  - Request
    - JSON `{"id": "ID", "session": "SESSION_KEY"}`
  - Response
    - 200 Ok
      - JSON `["SESSION_KEY":"CLIENT_ID"]`
    - 401 Unauthorized
      - JSON `"Not Authenticated"`
- POST `/user/delete`
  - Request
    - JSON `{"id": "ID", "session": "SESSION_KEY", "password": "PASSWORD"}`
  - Response
    - 200 Ok
      - JSON `"Deleted"`
    - 401 Unauthorized
      - JSON `"Not Authenticated"`
- POST `/transfer/out`
  - Request
    - JSON `{"id": "ID", "session": "SESSION_KEY", "to": "ID", "color": "COLOR", "amount": 0}`
      - ID and SESSION_KEY are from the from account
      - TO_ID is the account the tokens are going to
      - amount may be 0
  - Response
    - 200 Ok
    - 500 Internal Server Error
      - JSON `"Could not complete transaction"`
- POST `/user/update/password`
  - Request
    - JSON `{"id": "ID", "session": "SESSION_KEY", "old_password": "PASSWORD", "new_password": "PASSWORD"}`
  - Response
    - 200 Ok
    - 500 Internal Server Error`
- POST `/user/update/name`
  - Request
    - JSON `{"id": "ID", "session": "SESSION_KEY", "name": "USERNAME"}`
  - Response
    - 200 Ok
    - 500 Internal Server Error
- POST `/admin/regkey/new`
  - Request
    - JSON `{"id": "ID", "session": "SESSION_KEY", "key": "REGISTRATION_KEY"}`
  - Response
    - 200 Ok
    - 500 Internal Server Error
      - JSON `"Not an admin"`
      - JSON `"Key already exists"`
      - JSON `"Keys aren't used on this server"`
- POST `/admin/regkey/del`
  - Request
    - JSON `{"id": "ID", "session": "SESSION_KEY", "key": "REGISTRATION_KEY"}`
  - Response
    - 200 Ok
    - 500 Internal Server Error
      - JSON `"Not an admin"`
      - JSON `"Could not find key"`
      - JSON `"Keys aren't used on this server"`
- POST `/admin/regkey/list`
  - Request
    - JSON `{"id": "ID", "session": "SESSION_KEY"}`
  - Response
    - 200 Ok
    - 500 Internal Server Error
      - JSON `"Not an admin"`
      - JSON `"Keys aren't used on this server"`