Skip to content

Instantly share code, notes, and snippets.

@vkuzmov
Last active November 18, 2015 12:39
Show Gist options
  • Save vkuzmov/53288c78f2659787c655 to your computer and use it in GitHub Desktop.
Save vkuzmov/53288c78f2659787c655 to your computer and use it in GitHub Desktop.

##API documentation

###Auth controller

####Login

[POST] api/v1/auth/login
  • email - required
  • password - requred

####Facebook login

[POST] api/v1/auth/facebook_login
  • facebook_id - required, unique
  • first_name - required
  • last_name - required
  • email - unique

####Logout

[DELETE] api/v1/auth/login
  • email - required
  • password - requred

###Authors controller

####List

[GET] api/v1/authors

####Show

[GET] api/v1/authors/{id}

###Books controller

####Status values

0 = Visible
1 = Hidden

####List

[GET] api/v1/books

######Search parameters

  • title
  • author
  • genres - comma separated list of names OR array
  • lat
  • lng
  • orderBy - accepted values: popularity|rarity. You can also set the sort direction like so: orderBy=rarity:desc,popularity:asc

####Store

[POST] api/v1/books
  • title - required
  • authors - requred. Can be comma separated list of names OR array.
  • genres - requred. Can be comma separated list of ids OR array.
  • isbn_10 - required if isbn_13 is empty
  • isbn_13 - required if isbn_10 is empty
  • cover - image

####Show

[GET] api/v1/books/{bookId}

####Get book authors

[GET] api/v1/books/{bookId}/authors

####Get book genres

[GET] api/v1/books/{bookId}/genres

####Get book owners - return users that have this book in their library

[GET] api/v1/books/{bookId}/owners

####Get popular books nearby currently logged user. You can paginate the result.

[GET] api/v1/books/popular_nearby_me

###Conversations controller

####List conversations of currently logged user

[GET] api/v1/conversations

######Search parameters

  • after_date - Accepts any valid string that represent date and timestamp as well.

####Show

[GET] api/v1/conversations/{conversationId}

###ForgottenPassword controller

####Reset password

[POST] api/v1/forgotten_password
  • email - email, unique, max:255,

###Genres controller

####List

[GET] api/v1/genres

####Show

[GET] api/v1/genres/{id}

###Messages controller

####List

[GET] api/v1/conversations/{conversationId}/messages

######Search parameters

  • after_date - Accepts any valid string that represent date and timestamp as well.

####Store

[POST] api/v1/messages
  • conversation_id - required
  • text - requred
  • notify - all|other

####Show

[GET] api/v1/messages/{messageId}

####Bulk seen

[PUT] api/v1/messages

######Parameters

  • ids - required|array

###SwapRequests controller

####List swap requests of currently logged user

[GET] api/v1/swap_requests

######Search parameters

  • after_date - Accepts any valid string that represent date and timestamp as well.

####Store

[POST] api/v1/swap_requests
  • first_responder_id - required|int
  • second_responder_id - required|int
  • first_responder_book_id - required|int (Book of first responder)
  • second_responder_book_id - required|int (Book of second responder)
  • accept_immediately - boolean

####Accept swap request

[PUT] api/v1/swap_requests/{swapRequestId}/accept

######Parameters

  • user_id - required|int

####Decline swap request

[PUT] api/v1/swap_requests/{swapRequestId}/decline

######Parameters

  • user_id - required|int

####Remove currently logged user from swap request

[PUT] api/v1/swap_requests/{swapRequestId}/remove_me

###UserLocations controller

####Store

[POST] api/v1/user_locations
  • name - required
  • latitude - required
  • longitude - required

####Show

[GET] api/v1/user_locations/{userLocationId}

####Update

[PUT] api/v1/user_locations/{userLocationId}
  • name - required
  • latitude - required
  • longitude - required

####Delete

[DELETE] api/v1/user_locations/{userLocationId}

###Users controller

####List

[GET] api/v1/users

####Store

[POST] api/v1/users
  • first_name - required
  • last_name - required
  • email - email, unique, max:255,
  • password - between: 6 and 25 chars
  • facebook_id - unique
  • avatar - image

####Show

[GET] api/v1/users/{userId}

####Update

[PUT] api/v1/users/{userId}
  • first_name - required
  • last_name - required
  • email - email, unique, max:255,
  • password - between: 6 and 25 chars
  • facebook_id - unique
  • avatar - image

####Get user locations

[GET] api/v1/users/{userId}/locations

####Get user uploads (Library)

[GET] api/v1/users/{userId}/uploads

####Get user Wishlist

[GET] api/v1/users/{userId}/wishlist

####Add DeviceToken to user

[POST] api/v1/users/{userId}/add_device_token
  • token - required

###UserUploads controller

####Store upload of type book

[POST] api/v1/user_uploads/book
  • book[title]
  • book[authors] - Can be comma separated list of names OR array.
  • book[genres] - Can be comma separated list of ids OR array.
  • book[isbn_10]
  • book[isbn_13]
  • book[cover] - image

####Store upload of type image

[POST] api/v1/user_uploads/image
  • image - Image upload

####Show

[GET] api/v1/user_uploads/{userUploadId}

####Delete

[DELETE] api/v1/user_uploads/{userUploadId}

###UserWishlists controller

####Store

[POST] api/v1/user_wishlists
  • book_id - required, unique

####Delete

[DELETE] api/v1/user_wishlists/{bookId}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment