-
Method:
POST -
URL:
/api/signup -
Purpose:
Sign up the user -
Request Headers:
None -
Request Body:
{ "name": "string", "email":"string", "password": "string" } -
Example Request:
{ "name": "ABC", "email":"abc@def.com", "password":"123456" } -
Example Response:
-
Success Response:
-
Response Body:
{ "status": "success", "message": "User registered successfully", "userId": "676408066f52cf35843a5047", "token": "<--token-->" } -
Response Header:
Authorization: Bearer <--token--> -
Error Responses
{
"status": "error",
"message": "User with this email already exists"
}{
"status": "error",
"message": "Validation failed",
"errors": [
{
"type": "field",
"value": "12356",
"msg": "Password must be at least 6 characters long",
"path": "password",
"location": "body"
}
]
}-
Method:
POST -
URL:
/api/users/friend-request/:receiverId -
Purpose:
Send a friend Request -
Request Headers:
None -
Request Body:
{ "userId":"ObjectId" } -
Example Request:
{ "userId":"676408066f52cf35843a5047" } -
Example Response:
-
Success Response:
-
Response Body:
{ "message": "Friend request sent!", "friendRequest": { "sender": "676408066f52cf35843a5047", "receiver": "67640c946f52cf35843a504c", "status": "pending", "_id": "67640e8c6f52cf35843a504f", "created_at": "2024-12-19T12:16:12.757Z", "__v": 0 } } -
Error Responses
{
"message": "Friend request already sent!"
}{
"message": "Error sending friend request",
"error": {
"stringValue": "\"67640c946f52cf35843a5d04c\"",
"valueType": "string",
"kind": "ObjectId",
"value": "67640c946f52cf35843a5d04c",
"path": "receiver",
"reason": {},
"name": "CastError",
"message": "Cast to ObjectId failed for value \"67640c946f52cf35843a5d04c\" (type string) at path \"receiver\" for model \"FriendRequest\""
}
}-
Method:
POST -
URL:
/api/users/friend-request/respond/:requestId -
Purpose:
Take action on a friend Request -
Request Headers:
None -
Request Body:
{ "status":"accepted/rejected" } -
Example Request:
{ "status":"accepted" } -
Example Response:
-
Success Response:
-
Response Body:
{ "message": "Friend request accepted!", "friendRequest": { "_id": "67640e8c6f52cf35843a504f", "sender": "676408066f52cf35843a5047", "receiver": "67640c946f52cf35843a504c", "status": "accepted", "created_at": "2024-12-19T12:16:12.757Z", "__v": 0 } } -
Error Responses
{
"message": "Invalid status!"
} {
"message": "Error responding to friend request",
"error": {
"stringValue": "\"67640e8c6f52cf35s843a504f\"",
"valueType": "string",
"kind": "ObjectId",
"value": "67640e8c6f52cf35s843a504f",
"path": "_id",
"reason": {},
"name": "CastError",
"message": "Cast to ObjectId failed for value \"67640e8c6f52cf35s843a504f\" (type string) at path \"_id\" for model \"FriendRequest\""
}
}-
Method:
GET -
URL:
/api/users/friend-requests/:userId -
Purpose:
Get All Friend Requests for a User -
Request Headers:
None -
Request Body:
None -
Example Response:
-
Success Response:
-
Response Body:
{ "message": "Friend requests fetched", "requests": [ { "_id": "67640e8c6f52cf35843a504f", "sender": { "_id": "676408066f52cf35843a5047", "name": "ABC", "email": "abc@def.com" }, "receiver": { "_id": "67640c946f52cf35843a504c", "name": "DEF", "email": "abcsd@def.com" }, "status": "accepted", "created_at": "2024-12-19T12:16:12.757Z", "__v": 0 } ] } -
Error Responses
{ "message": "Error fetching friend requests", "error": { "stringValue": "\"676408066f52scf35843a5047\"", "valueType": "string", "kind": "ObjectId", "value": "676408066f52scf35843a5047", "path": "receiver", "reason": {}, "name": "CastError", "message": "Cast to ObjectId failed for value \"676408066f52scf35843a5047\" (type string) at path \"receiver\" for model \"FriendRequest\"" } }
-
Method:
GET -
URL:
/api/users/friend-request/status/:requestId -
Purpose:
Get Status of a Specific Friend Request -
Request Headers:
None -
Request Body:
None -
Example Response:
-
Success Response:
-
Response Body:
{ "message": "Friend request status fetched", "status": "accepted", "friendRequest": { "_id": "67640e8c6f52cf35843a504f", "sender": { "_id": "676408066f52cf35843a5047", "name": "ABC", "email": "abc@def.com" }, "receiver": { "_id": "67640c946f52cf35843a504c", "name": "DEF", "email": "abcsd@def.com" }, "status": "accepted", "created_at": "2024-12-19T12:16:12.757Z", "__v": 0 } } -
Error Responses
{ "message": "Error fetching friend request status", "error": { "stringValue": "\"67640e8c6f5d2cf35843a504f\"", "valueType": "string", "kind": "ObjectId", "value": "67640e8c6f5d2cf35843a504f", "path": "_id", "reason": {}, "name": "CastError", "message": "Cast to ObjectId failed for value \"67640e8c6f5d2cf35843a504f\" (type string) at path \"_id\" for model \"FriendRequest\"" } }
-
Method:
POST -
URL:
/api/users/mark-online/:userId -
Purpose:
Mark Player as Online -
Request Headers:
None -
Request Body:
None -
Example Response:
-
Success Response:
-
Response Body:
{ "message": "User marked as online", "user": { "_id": "676408066f52cf35843a5047", "name": "ABC", "email": "abc@def.com", "password": "$2a$12$kHeUYNhqW4PjnSWcEp0ldOn92ypeT4e8vdN5to6SGGQATxeRHEVuy", "last_online": null, "blockedUsers": [], "bio": "", "wordScore": 0, "__v": 0 } } -
Error Responses
{ "message": "Error marking user as online", "error": { "stringValue": "\"676408066xf52cf35843a5047\"", "valueType": "string", "kind": "ObjectId", "value": "676408066xf52cf35843a5047", "path": "_id", "reason": {}, "name": "CastError", "message": "Cast to ObjectId failed for value \"676408066xf52cf35843a5047\" (type string) at path \"_id\" for model \"user\"" } }
-
Method:
POST -
URL:
/api/users/mark-offline/:userId -
Purpose:
Mark Player as Online -
Request Headers:
None -
Request Body:
None -
Example Response:
-
Success Response:
-
Response Body:
{ "message": "User marked as offline", "user": { "_id": "676408066f52cf35843a5047", "name": "ABC", "email": "abc@def.com", "password": "$2a$12$kHeUYNhqW4PjnSWcEp0ldOn92ypeT4e8vdN5to6SGGQATxeRHEVuy", "last_online": "2024-12-19T12:42:25.794Z", "blockedUsers": [], "bio": "", "wordScore": 0, "__v": 0 } } -
Error Responses
{ "message": "Error marking user as offline", "error": { "stringValue": "\"676408066xf52cf35843a5047\"", "valueType": "string", "kind": "ObjectId", "value": "676408066xf52cf35843a5047", "path": "_id", "reason": {}, "name": "CastError", "message": "Cast to ObjectId failed for value \"676408066xf52cf35843a5047\" (type string) at path \"_id\" for model \"user\"" } }
-
Method:
GET -
URL:
/api/users/last-online/:userId -
Purpose:
Get Last Online of a User -
Request Headers:
None -
Request Body:
None -
Example Response:
-
Success Response:
-
Response Body:
{ "message": "Last online time", "last_online": "19-12-2024(18:12)" } -
Error Responses
{ "message": "Error fetching last online", "error": { "stringValue": "\"676408066xf52cf35843a5047\"", "valueType": "string", "kind": "ObjectId", "value": "676408066xf52cf35843a5047", "path": "_id", "reason": {}, "name": "CastError", "message": "Cast to ObjectId failed for value \"676408066xf52cf35843a5047\" (type string) at path \"_id\" for model \"user\"" } }
-
Method:
POST -
URL:
/api/users/block -
Purpose:
Block a User -
Request Headers:
None -
Request Body:
{ "userId": "ObjectID", "blockedUserId": "ObjectID" } -
Example Request:
{ "userId": "676408066f52cf35843a5047", "blockedUserId": "67640c946f52cf358s43a504c" } -
Example Response:
-
Success Response:
-
Response Body:
{ "message": "User 67640c946f52cf35843a504c blocked successfully!", "blockedUsers": [ "67640c946f52cf35843a504c" ] } -
Error Responses
{ "message": "Error blocking user", "error": { "stringValue": "\"67640c946f52cf358s43a504c\"", "valueType": "string", "kind": "ObjectId", "value": "67640c946f52cf358s43a504c", "path": "blockedUsers", "reason": {}, "name": "CastError", "message": "Cast to ObjectId failed for value \"67640c946f52cf358s43a504c\" (type string) at path \"blockedUsers\" because of \"BSONError\"" } }
-
Method:
POST -
URL:
/api/users/unblock -
Purpose:
Unblock a User -
Request Headers:
None -
Request Body:
{ "userId": "ObjectID", "blockedUserId": "ObjectID" } -
Example Request:
{ "userId": "676408066f52cf35843a5047", "blockedUserId": "67640c946f52cf358s43a504c" } -
Example Response:
-
Success Response:
-
Response Body:
{ "message": "User 67640c946f52cf35843a504c unblocked successfully!", "blockedUsers": [] } -
Error Responses
{ "message": "Error unblocking user", "error": { "stringValue": "\"676408066f52cf35843a5s047\"", "valueType": "string", "kind": "ObjectId", "value": "676408066f52cf35843a5s047", "path": "_id", "reason": {}, "name": "CastError", "message": "Cast to ObjectId failed for value \"676408066f52cf35843a5s047\" (type string) at path \"_id\" for model \"user\"" } }
-
Method:
GET -
URL:
/api/users/blocked-users/:userId -
Purpose:
Get All Blocked Users for a User -
Request Headers:
None -
Request Body:
None -
Example Response:
-
Success Response:
-
Response Body:
{ "message": "Blocked users fetched successfully", "blockedUsers": [] } -
Error Responses
{ "message": "Error fetching blocked users", "error": "Cast to ObjectId failed for value \"676s40c946f52cf35843a504c\" (type string) at path \"_id\" for model \"user\"" }
-
Method:
GET -
URL:
/api/users/profile/:userId -
Purpose:
Fetching user profile -
Request Headers:
None -
Request Body:
None -
Example Response:
-
Success Response:
-
Response Body:
{ "message": "Profile fetched successfully", "profile": { "_id": "67640c946f52cf35843a504c", "name": "DEF", "email": "abcsd@def.com", "password": "$2a$12$AkIzUHCQ1X8.lzzCcYi4Fu3H9FzGojtx0j7/pZSoQGlbyMZBVu9EW", "last_online": null, "blockedUsers": [], "bio": "", "wordScore": 0, "__v": 0 } } -
Error Responses
{ "message": "Error fetching profile", "error": { "stringValue": "\"676s40c946f52cf35843a504c\"", "valueType": "string", "kind": "ObjectId", "value": "676s40c946f52cf35843a504c", "path": "_id", "reason": {}, "name": "CastError", "message": "Cast to ObjectId failed for value \"676s40c946f52cf35843a504c\" (type string) at path \"_id\" for model \"user\"" } }
-
Method:
PUT -
URL:
/api/users/profile/:userId -
Purpose:
Updating user profile -
Request Headers:
None -
Request Body:
{ "name":"String", "email":"String", "bio":"String" } -
Example Request:
{ "name":"newName", "email":"aso@osam.com", "bio":"Updated bio" } -
Example Response:
-
Success Response:
-
Response Body:
{ "message": "Profile updated successfully", "profile": { "_id": "67640c946f52cf35843a504c", "name": "newName", "email": "aso@osam.com", "password": "$2a$12$AkIzUHCQ1X8.lzzCcYi4Fu3H9FzGojtx0j7/pZSoQGlbyMZBVu9EW", "last_online": null, "blockedUsers": [], "bio": "Updated bio", "wordScore": 0, "__v": 0 } } -
Error Responses
{ "message": "Error updating profile", "error": { "stringValue": "\"67640ac946f52cf35843a504c\"", "valueType": "string", "kind": "ObjectId", "value": "67640ac946f52cf35843a504c", "path": "_id", "reason": {}, "name": "CastError", "message": "Cast to ObjectId failed for value \"67640ac946f52cf35843a504c\" (type string) at path \"_id\" for model \"user\"" } }
-
Method:
GET -
URL:
/api/users/friends/search -
Purpose:
Getting all friends -
Request Headers:
None -
Request Body:
{ "userId":"ObjectID", "name":"String", "email":"String" } -
Example Request:
{ "userId":"676408066f52cf35843a5047", "name":"newName", "email":"aso@osam.com" } -
Example Response:
-
Success Response:
-
Response Body:
{ "success": true, "data": [] }
-
Method:
GET -
URL:
/api/users/wordScore/:id -
Purpose:
Getting wordScore -
Request Headers:
None -
Request Body:
None -
Example Response:
-
Success Response:
-
Response Body:
{ "wordScore": 0 }- Error Responses
{ "message": "Error while getting word score", "error": { "stringValue": "\"676408066f5a2cf35843a5047\"", "valueType": "string", "kind": "ObjectId", "value": "676408066f5a2cf35843a5047", "path": "_id", "reason": {}, "name": "CastError", "message": "Cast to ObjectId failed for value \"676408066f5a2cf35843a5047\" (type string) at path \"_id\" for model \"user\"" } }
-
Method:
POST -
URL:
/api/users/wordScore/:id/increase -
Purpose:
Increasing wordScore -
Request Headers:
None -
Request Body:
{ "increment": "Number" } -
Example Response:
{ "increment": 30 } -
Example Response:
-
Success Response:
-
Response Body:
{ "message": "WordScore increased", "wordScore": 30 }- Error Responses
{ "message": "Error while increasing word score", "error": { "stringValue": "\"a676408066f52cf35843a5047\"", "valueType": "string", "kind": "ObjectId", "value": "a676408066f52cf35843a5047", "path": "_id", "reason": {}, "name": "CastError", "message": "Cast to ObjectId failed for value \"a676408066f52cf35843a5047\" (type string) at path \"_id\" for model \"user\"" } }
-
Method:
POST -
URL:
/api/users/wordScore/:id/decrease -
Purpose:
Decreasing wordScore -
Request Headers:
None -
Request Body:
{ "decrement": "Number" } -
Example Response:
{ "decrement": 10 } -
Example Response:
-
Success Response:
-
Response Body:
{ "message": "WordScore decreased", "wordScore": 20 }- Error Responses
{ "message": "Error while decreasing word score", "error": { "stringValue": "\"a676408066f52cf35843a5047\"", "valueType": "string", "kind": "ObjectId", "value": "a676408066f52cf35843a5047", "path": "_id", "reason": {}, "name": "CastError", "message": "Cast to ObjectId failed for value \"a676408066f52cf35843a5047\" (type string) at path \"_id\" for model \"user\"" } }