-
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":"[email protected]", "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": "[email protected]" }, "receiver": { "_id": "67640c946f52cf35843a504c", "name": "DEF", "email": "[email protected]" }, "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": "[email protected]" }, "receiver": { "_id": "67640c946f52cf35843a504c", "name": "DEF", "email": "[email protected]" }, "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": "[email protected]", "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": "[email protected]", "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": "[email protected]", "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":"[email protected]", "bio":"Updated bio" }
-
Example Response:
-
Success Response:
-
Response Body:
{ "message": "Profile updated successfully", "profile": { "_id": "67640c946f52cf35843a504c", "name": "newName", "email": "[email protected]", "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":"[email protected]" }
-
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\"" } }