Kinglet API

Each function is preceded with @/api/v1@.

h3. Messages

Each URI ends with a query string @/?user_name=[user_name]&user_id=[user_id]&session_id=[session_id@.

example displaying message number 5: 
@GET /api/v1/messages/5/ru8er03jjg3k40vjl09/23/JR@

*[X]* @GET /messages@ - homepage. stream. messages created by or sent to the logged in user.

*[X]* @GET /messages/page/3@ - page three of the stream.

*[X]* @GET /messages/since/[date]@ - for the logged-in user, get all new messages received since the supplied date, which is in epoch seconds.

*[X]* @GET /messages/5@ - retrieve message 5.

*[X]* @POST /messages@ - create a new message.

*[X]* @GET /messages/5/replies@ - retrieve all reply messages for message 5.

*[X]*  @POST /messages/5/replies@ - create a reply message to message 5.

*[X]* @GET /messages/threads@ - list the messages that start new discussions.


h3. Users

 # = URI ends with a query string @/?user_name=[user_name]&user_id=[user_id]&session_id=[session_id@.

*[X]*  @GET /users/JR@ - retrieve user info for user name JR. #

*[X]*  @POST /users@ - create a new user account.

*[X]*  @GET /users/activate/[user_digest]@ - activate user account

*[X]* @GET /users/JR/logout@ - logout user JR. #

*[X]*  @POST /users/login@ - login user.

*[X]*  @POST /users/password@ - retrieve new password for existing account. user would not be logged in. this would be executed for someone who forgot or lost password.

*[X]*  @PUT /users/password@ - change password for existing account. user must be logged-in. #

*[X]*  @PUT /users@ - update e-mail and/or profile description for the user #

User actions:
- X create account
- X activate account
- X login
- X change password
- X change e-mail and profile description
- X retrieve user profile info
- request new password
- X logout

Message actions:
- create a new message
- get single message
- get user's stream of all messages (sent and received)
- get user's new messages received since supplied date
- create a reply to a particular message
- retrieve all replies for a message
- list the new messages that start a discussion thread


h2. Returned JSON

+Create New User Account+

code.{
  "status"       :  201,
  "user_id"      :  "9",
  "user_name"    :  "1389906958",
  "password"     :  "khd7vj4m",
  "email"        :  "1389906958@test.com",
  "user_digest"  :  "p7X4CwwLSuqD2bjYIATcw",
  "description"  :  "Created"
}
code..

+Activate Account+

code.{
    "status"       :  200,
    "description"  :  "OK"
}
code..


+Log In+

code.{
    "status"      :  200,
    "user_id"     :  "17",
    "user_name"   :  "kinglettest1389911089",
    "session_id"  :  "LUb83Dw38nnqMOI47NVZw"
}
code..

+Successfully Change Password+

code.{
    "session_id"  :  "3Ms41qwZfjuHW2kUmNeOg",
    "status"      :  200,
    "user_id"     :  "20",
    "user_name"   :  "kinglettest1389912835"
}
code..

+Unsuccessfully Changed Password+

code.{
    "status"          :   400,
    "description"     :  "Bad Request",
    "user_message"    :  "Old password is incorrect.",
    "system_message"  :  "Try again. oldpwd=ykboQdwz7h0qXrPoUJKGaw - pwd=9gz3Ijf8GhCdFCqsma+dvw - olddig=AVQk3qoFBzn2yrbEIVVA - digest=5BYzikIRrokcaEQmGIeSA"
}
code..

+Successfully Updated User Profile Page+

code.{
    "status"  :  200
}
code..

+Successfully Displayed User Profile Page+

code.{
    "desc_markup"   :  "this is my boring profile page.",
    "status"        :  200,
    "created_date"  :  "Jan 16, 2014",
    "user_name"     :  "kinglettest1389915584",
    "email"         :  "kinglettest1389915584@testnew.com",
    "user_status"   :  "o",
    "user_id"       :  "21",
    "digest"        :  "q5JUMA9YC2GgkMwb8s19Mg",
    "desc_format"   :  "this is my boring profile page."
}
code..


+Unsuccessfully Retrieved New Password+

{"status":"404","description":"Not Found","user_message":"Invalid input.","system_message":"Username and/or e-mail does not exist."}




+Successfully Logged Out+

code.{
    "status"       :  200,
    "description"  :  "OK"
}
code..



 #kinglet - #api - #programming