Add the username to the JSON response to GET.
In addition to this, version the API with the classic "api/v1" path.main
parent
df09a192b0
commit
ceea61c1ed
|
@ -40,7 +40,7 @@ start(_Type, StartArgs) ->
|
|||
|
||||
Dispatch = cowboy_router:compile([
|
||||
{'_', [
|
||||
{"/user/:username", dudeswave_user_handler, #{bucket => ?USERSBUCK,
|
||||
{"/api/v1/user/:username", dudeswave_user_handler, #{bucket => ?USERSBUCK,
|
||||
cookies => ?COOKIESBUCK}},
|
||||
{"/", dudeswave_handler, #{bucket => ?APPBUCK}}
|
||||
]}
|
||||
|
|
|
@ -17,14 +17,13 @@
|
|||
-moduledoc """
|
||||
JSON API to manage users.
|
||||
|
||||
The username should be passed as one of the tokens of the request path, like
|
||||
The username should be passed as the last token in the request, like:
|
||||
|
||||
```
|
||||
/user/foo
|
||||
/user/foo/details
|
||||
```
|
||||
|
||||
However, the first form is preferred.
|
||||
Where `foo` is the actual username.
|
||||
|
||||
The user parameter must be called `username` as this module expects it
|
||||
in order to work properly. All the requests must be done with a valid
|
||||
|
@ -63,6 +62,7 @@ GET /user/:username
|
|||
|
||||
```
|
||||
{
|
||||
"user" : "foo",
|
||||
"email": "foo@example.com",
|
||||
"description": "A wonderful user",
|
||||
"name": "Fantastic Foo"
|
||||
|
@ -110,7 +110,6 @@ DELETE /user/:username
|
|||
- 202 Accepted
|
||||
- 404 Not Found
|
||||
|
||||
|
||||
""".
|
||||
|
||||
-behaviour(cowboy_handler).
|
||||
|
@ -243,8 +242,9 @@ modify_user(Req, State) ->
|
|||
|
||||
user_details(Req, State) ->
|
||||
#{details := Details} = State,
|
||||
Data = Details#{user => cowboy_req:binding(username, Req)},
|
||||
|
||||
{iolist_to_binary(json:encode(Details)), Req, State}.
|
||||
{iolist_to_binary(json:encode(Data)), Req, State}.
|
||||
|
||||
%
|
||||
% gen_server callbacks
|
||||
|
|
Loading…
Reference in New Issue