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 #
X User actions:
- create account
- activate account
- login
- change password
- change e-mail and profile description
- retrieve user profile info
- request new password
- logout
Message actions:
- X create a new message
- X get single message
- X create a reply to a particular message
- X retrieve all replies for a message
- X get user's stream of all messages (sent and received)
- X _[need to create a 2nd user account for testing]_ get user's new messages received since supplied date
- 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+
code.{
"status" : "404",
"description" : "Not Found",
"user_message" : "Invalid input.",
"system_message" : "Username and/or e-mail does not exist."
}
code..
+Successfully Retrieved New Password+
code.{
"email" : "kinglettest1389921202@test.com",
"status" : 200,
"new_password" : "7rqqawh8"
}
code..
+Successfully Logged Out+
code.{
"status" : 200,
"description" : "OK"
}
code..
+Successfully Created a New Message+
code.{
"message_id" : "35",
"status" : 201,
"description" : "Created"
}
code..
+Successfully Read a Message+
code.{
"content_digest" : "yGK8VYhKj5dJV7AhJMNP9Q",
"author_name" : "kinglettest1389981418",
"author_id" : "32",
"message_id" : "36",
"status" : 200,
"created_date" : "Jan 17, 2014 at 06:03:54 PM",
"message_status" : "o",
"description" : "OK",
"recipient_names" : "|kinglettest1389981418|",
"parent_id" : "0",
"reply_count" : "0",
"message_text" : "@kinglettest1389981418 sending a messsage to myself."
}
code..
h2. Successfully Added Reply Message
code.{
"message_id" : "37",
"status" : 201,
"description" : "Created"
}
code..
h2. +Successfully Retrieving All Replies+
code.{
"messages":
[
{
"author_name" :"kinglettest1389981418",
"message_id" : "37",
"message_status" : "o",
"created_date" : "1 hr ago",
"parent_id" : "36",
"recipient_names" : "kinglettest1389981418",
"author_type" : "you",
"logged_in_user" : "32",
"message_text" : "This is a reply message.","reply_count":"0"
}
],
"status" : 200,
"description" : "OK",
"next_link_bool" : 0
}
code..
+Successfully Retrieved All of a User's Messages, Sent and Received+
code.{
"messages"
[
{
"author_name" : "kinglettest1389981418",
"message_id" : "37",
"message_status" : "o",
"created_date" : "1 hr ago",
"parent_id" : "36",
"recipient_names" : "kinglettest1389981418",
"author_type" : "you",
"logged_in_user" : "32",
"message_text" : "This is a reply message.",
"reply_count" : "0"
},
{
"author_name" : "kinglettest1389981418",
"message_id" : "36",
"message_status" : "o",
"created_date" : "2 hrs ago",
"parent_id" : "0",
"recipient_names" : "kinglettest1389981418",
"logged_in_user" : "32",
"author_type" : "you",
"message_text" : "@kinglettest1389981418 sending a messsage to myself.",
"reply_count" : "1"
}
],
"status" : 200,
"description" : "OK",
"next_link_bool" : 0
}
code..
h2. +No New Messages Received Since a Specified Date+
code.{
"new_message_count" : 0,
"status" : 200,
"description" : "OK"
}
code..
h2. Test script order
(will need to change script names later)
a_
b_
c_
i_
j_
k_
#kinglet - #api - #programming