mirror of
				https://github.com/3ybactuk/marketplace-go-service-project.git
				synced 2025-10-30 22:13:44 +03:00 
			
		
		
		
	
		
			
				
	
	
		
			594 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			HTTP
		
	
	
	
	
	
			
		
		
	
	
			594 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			HTTP
		
	
	
	
	
	
| ########################## add
 | |
| 
 | |
| ### add valid comment
 | |
| POST http://localhost:8086/comment/add
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": 42,
 | |
|   "sku": 1004005,
 | |
|   "comment": "hello world"
 | |
| }
 | |
| 
 | |
| ### Expect:
 | |
| ### {
 | |
| ###  "id": "1001"
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### add invalid comment, miss user_id
 | |
| POST http://localhost:8086/comment/add
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "sku": 1004005,
 | |
|   "comment": "hello world"
 | |
| }
 | |
| 
 | |
| ### Expect:
 | |
| ### {
 | |
| ###  "code": 3,
 | |
| ###  "message": "invalid CommentAddRequest.UserId: value must be greater than 0",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### add invalid comment, negative user_id
 | |
| POST http://localhost:8086/comment/add
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": -42,
 | |
|   "sku": 1004005,
 | |
|   "comment": "hello world"
 | |
| }
 | |
| 
 | |
| ### Expect:
 | |
| ### {
 | |
| ###  "code": 3,
 | |
| ###  "message": "invalid CommentAddRequest.UserId: value must be greater than 0",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### add invalid comment, miss sku
 | |
| POST http://localhost:8086/comment/add
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": 42,
 | |
|   "comment": "hello world"
 | |
| }
 | |
| 
 | |
| ### Expect:
 | |
| ### {
 | |
| ###  "code": 3,
 | |
| ###  "message": "invalid CommentAddRequest.Sku: value must be greater than 0",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### add invalid comment, negative sku
 | |
| POST http://localhost:8086/comment/add
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": 42,
 | |
|   "sku": -10,
 | |
|   "comment": "hello world"
 | |
| }
 | |
| 
 | |
| ### Expect:
 | |
| ### {
 | |
| ###  "code": 3,
 | |
| ###  "message": "invalid CommentAddRequest.Sku: value must be greater than 0",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### add invalid comment, miss comment
 | |
| POST http://localhost:8086/comment/add
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": 42,
 | |
|   "sku": 1004005
 | |
| }
 | |
| 
 | |
| ### Expect:
 | |
| ### {
 | |
| ###  "code": 3,
 | |
| ###  "message": "invalid CommentAddRequest.Comment: value length must be between 1 and 255 runes, inclusive",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### add invalid comment, empty comment
 | |
| POST http://localhost:8086/comment/add
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": 42,
 | |
|   "sku": 1004005,
 | |
|   "comment": ""
 | |
| }
 | |
| 
 | |
| 
 | |
| ### Expect:
 | |
| ### {
 | |
| ###  "code": 3,
 | |
| ###  "message": "invalid CommentAddRequest.Comment: value length must be between 1 and 255 runes, inclusive",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### add invalid comment, too large comment
 | |
| POST http://localhost:8086/comment/add
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": 42,
 | |
|   "sku": 1004005,
 | |
|   "comment": "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456"
 | |
| }
 | |
| 
 | |
| ### Expect:
 | |
| ### {
 | |
| ###  "code": 3,
 | |
| ###  "message": "invalid CommentAddRequest.Comment: value length must be between 1 and 255 runes, inclusive",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| ########################## get by id
 | |
| 
 | |
| ### set precondition BEGIN ###
 | |
| ### save comment_id from response
 | |
| 
 | |
| ### add valid comment
 | |
| POST http://localhost:8086/comment/add
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": 123,
 | |
|   "sku": 456005,
 | |
|   "comment": "hello world 123"
 | |
| }
 | |
| 
 | |
| ### Expect:
 | |
| ### {
 | |
| ###   "id": "8000"
 | |
| ### }
 | |
| 
 | |
| ### set precondition END ###
 | |
| 
 | |
| ### get valid, previously created, comment
 | |
| POST http://localhost:8086/comment/get-by-id
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "id": 8000
 | |
| }
 | |
| 
 | |
| ### Expect:
 | |
| ### {
 | |
| ###   "id": "8000",
 | |
| ###   "user_id": "123",
 | |
| ###   "sku": "456005",
 | |
| ###   "comment": "hello world 123",
 | |
| ###   "created_at": "2025-01-13T17:15:17.252417Z"
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### get comment by invalid id (negative)
 | |
| POST http://localhost:8086/comment/get-by-id
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "id": -8000
 | |
| }
 | |
| 
 | |
| ### Expect:
 | |
| ### {
 | |
| ###   "code": 3,
 | |
| ###   "message": "invalid CommentGetByIDRequest.Id: value must be greater than 0",
 | |
| ###   "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### get comment by id, which not exists
 | |
| POST http://localhost:8086/comment/get-by-id
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "id": 404000
 | |
| }
 | |
| 
 | |
| ### Expect:
 | |
| ### {
 | |
| ###   "code": 5,
 | |
| ###   "message": "comment with id=404000 not found",
 | |
| ###   "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| ########################## edit
 | |
| 
 | |
| ### edit valid comment
 | |
| POST http://localhost:8086/comment/edit
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": 42,
 | |
|   "comment_id": 1001,
 | |
|   "new_comment": "hello world changed"
 | |
| }
 | |
| 
 | |
| ### Expect
 | |
| ### {}
 | |
| 
 | |
| 
 | |
| ### edit invalid comment, user is not an author
 | |
| POST http://localhost:8086/comment/edit
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": 555555,
 | |
|   "comment_id": 1001,
 | |
|   "new_comment": "hello world changed"
 | |
| }
 | |
| 
 | |
| ### Expect
 | |
| ### {
 | |
| ###  "code": 7,
 | |
| ###  "message": "unable to edit comment: given user is not an author of modified comment",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### edit invalid comment, comment is not exists
 | |
| POST http://localhost:8086/comment/edit
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": 42,
 | |
|   "comment_id": 555551001,
 | |
|   "new_comment": "hello world changed"
 | |
| }
 | |
| 
 | |
| ### Expect
 | |
| ### {
 | |
| ###  "code": 5,
 | |
| ###  "message": "editing comment is not found",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### edit invalid comment, miss user_id
 | |
| POST http://localhost:8086/comment/edit
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "comment_id": 1001,
 | |
|   "new_comment": "hello world changed"
 | |
| }
 | |
| 
 | |
| ### Expect
 | |
| ### {
 | |
| ###  "code": 3,
 | |
| ###  "message": "invalid CommentEditRequest.UserId: value must be greater than 0",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### edit invalid comment, negative user_id
 | |
| POST http://localhost:8086/comment/edit
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": -42,
 | |
|   "comment_id": 1001,
 | |
|   "new_comment": "hello world changed"
 | |
| }
 | |
| 
 | |
| ### Expect
 | |
| ### {
 | |
| ###  "code": 3,
 | |
| ###  "message": "invalid CommentEditRequest.UserId: value must be greater than 0",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### edit invalid comment, miss comment_id
 | |
| POST http://localhost:8086/comment/edit
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": 42,
 | |
|   "new_comment": "hello world changed"
 | |
| }
 | |
| 
 | |
| ### Expect
 | |
| ### {
 | |
| ###  "code": 3,
 | |
| ###  "message": "invalid CommentEditRequest.CommentId: value must be greater than 0",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### edit invalid comment, negative comment_id
 | |
| POST http://localhost:8086/comment/edit
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": 42,
 | |
|   "comment_id": -1001,
 | |
|   "new_comment": "hello world changed"
 | |
| }
 | |
| 
 | |
| ### Expect
 | |
| ### {
 | |
| ###  "code": 3,
 | |
| ###  "message": "invalid CommentEditRequest.CommentId: value must be greater than 0",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### edit invalid comment, miss new_comment
 | |
| POST http://localhost:8086/comment/edit
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": 42,
 | |
|   "comment_id": 1001
 | |
| }
 | |
| 
 | |
| ### Expect
 | |
| ### {
 | |
| ###  "code": 3,
 | |
| ###  "message": "invalid CommentEditRequest.NewComment: value length must be between 1 and 255 runes, inclusive",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### edit invalid comment, empty new_comment
 | |
| POST http://localhost:8086/comment/edit
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": 42,
 | |
|   "comment_id": 1001,
 | |
|   "new_comment": ""
 | |
| }
 | |
| 
 | |
| ### Expect
 | |
| ### {
 | |
| ###  "code": 3,
 | |
| ###  "message": "invalid CommentEditRequest.NewComment: value length must be between 1 and 255 runes, inclusive",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### edit invalid comment, too long new_comment
 | |
| POST http://localhost:8086/comment/edit
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": 42,
 | |
|   "comment_id": 1001,
 | |
|   "new_comment": "1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456"
 | |
| }
 | |
| 
 | |
| ### Expect
 | |
| ### {
 | |
| ###  "code": 3,
 | |
| ###  "message": "invalid CommentEditRequest.NewComment: value length must be between 1 and 255 runes, inclusive",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### edit valid comment, but editable time expired (CHANGE EditInterval!!!)
 | |
| POST http://localhost:8086/comment/edit
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "user_id": 42,
 | |
|   "comment_id": 1001,
 | |
|   "new_comment": "hello world changed 3"
 | |
| }
 | |
| 
 | |
| ### Expect
 | |
| ### {
 | |
| ###  "code": 9,
 | |
| ###  "message": "unable to edit comment: editing time interval expired",
 | |
| ###  "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| ########################## list by sku
 | |
| 
 | |
| ### set precondition BEGIN ###
 | |
| 
 | |
| ### add valid comment 1
 | |
| POST http://localhost:8086/comment/add
 | |
| Content-Type: application/json
 | |
| 
 | |
| {"user_id": 71, "sku": 123, "comment": "hello world 1"}
 | |
| 
 | |
| ### add valid comment 2
 | |
| POST http://localhost:8086/comment/add
 | |
| Content-Type: application/json
 | |
| 
 | |
| {"user_id": 71, "sku": 123, "comment": "hello world 2"}
 | |
| 
 | |
| ### add valid comment 3
 | |
| POST http://localhost:8086/comment/add
 | |
| Content-Type: application/json
 | |
| 
 | |
| {"user_id": 71, "sku": 123, "comment": "hello world 3"}
 | |
| 
 | |
| ### set precondition END ###
 | |
| 
 | |
| ### list comments by sku
 | |
| POST http://localhost:8086/comment/list-by-sku
 | |
| Content-Type: application/json
 | |
| 
 | |
| {"sku": 123}
 | |
| 
 | |
| ### Expected (order created_at DESC, IMPORTANT!!!):
 | |
| ### {
 | |
| ###   "comments": [
 | |
| ###     {
 | |
| ###       "id": "5001",
 | |
| ###       "user_id": "71",
 | |
| ###       "comment": "hello world 3",
 | |
| ###       "created_at": "2024-12-24T22:32:54.301507Z"
 | |
| ###     },
 | |
| ###     {
 | |
| ###       "id": "4001",
 | |
| ###       "user_id": "71",
 | |
| ###       "comment": "hello world 2",
 | |
| ###       "created_at": "2024-12-24T22:32:52.656693Z"
 | |
| ###     },
 | |
| ###     {
 | |
| ###       "id": "3001",
 | |
| ###       "user_id": "71",
 | |
| ###       "comment": "hello world 1",
 | |
| ###       "created_at": "2024-12-24T22:32:50.302224Z"
 | |
| ###     }
 | |
| ###   ]
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### list comments by sku, sku have no comments yet
 | |
| POST http://localhost:8086/comment/list-by-sku
 | |
| Content-Type: application/json
 | |
| 
 | |
| {"sku": 444444}
 | |
| 
 | |
| ### Expected:
 | |
| ### {
 | |
| ###   "comments": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### list comments by sku, invalid, miss sku
 | |
| POST http://localhost:8086/comment/list-by-sku
 | |
| Content-Type: application/json
 | |
| 
 | |
| {}
 | |
| 
 | |
| ### Expected:
 | |
| ### {
 | |
| ###   "code": 3,
 | |
| ###   "message": "invalid CommentListBySKURequest.Sku: value must be greater than 0",
 | |
| ###   "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### list comments by sku, invalid, negative sku
 | |
| POST http://localhost:8086/comment/list-by-sku
 | |
| Content-Type: application/json
 | |
| 
 | |
| {
 | |
|   "sku": -1234
 | |
| }
 | |
| 
 | |
| ### Expected:
 | |
| ### {
 | |
| ###   "code": 3,
 | |
| ###   "message": "invalid CommentListBySKURequest.Sku: value must be greater than 0",
 | |
| ###   "details": []
 | |
| ### }
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| ########################## list by user
 | |
| ### set precondition BEGIN ###
 | |
| 
 | |
| ### add valid comment 1
 | |
| POST http://localhost:8086/comment/add
 | |
| Content-Type: application/json
 | |
| 
 | |
| {"user_id": 54, "sku": 789, "comment": "comment #1 54-789 (shard-2)"}
 | |
| 
 | |
| ### add valid comment 1
 | |
| POST http://localhost:8086/comment/add
 | |
| Content-Type: application/json
 | |
| 
 | |
| {"user_id": 54, "sku": 456, "comment": "comment #1 54-456 (shard-1)"}
 | |
| 
 | |
| ### add valid comment 2
 | |
| POST http://localhost:8086/comment/add
 | |
| Content-Type: application/json
 | |
| 
 | |
| {"user_id": 54, "sku": 220, "comment": "comment #2 54-220 (shard-1)"}
 | |
| 
 | |
| ### add valid comment 3
 | |
| POST http://localhost:8086/comment/add
 | |
| Content-Type: application/json
 | |
| 
 | |
| {"user_id": 54, "sku": 567, "comment": "comment #2 54-567 (shard-2)"}
 | |
| 
 | |
| ### set precondition END ###
 | |
| 
 | |
| 
 | |
| ### list comments by user
 | |
| POST http://localhost:8086/comment/list-by-user
 | |
| Content-Type: application/json
 | |
| 
 | |
| {"user_id": 54}
 | |
| 
 | |
| ### Expected (order by created_at DESC, IMPORTANT!!!):
 | |
| ### {
 | |
| ###   "comments": [
 | |
| ###     {
 | |
| ###       "id": "13001",
 | |
| ###       "sku": "567",
 | |
| ###       "comment": "comment #2 54-567 (shard-2)",
 | |
| ###       "created_at": "2024-12-24T22:45:52.284861Z"
 | |
| ###     },
 | |
| ###     {
 | |
| ###       "id": "5000",
 | |
| ###       "sku": "220",
 | |
| ###       "comment": "comment #2 54-220 (shard-1)",
 | |
| ###       "created_at": "2024-12-24T22:45:49.050342Z"
 | |
| ###     },
 | |
| ###     {
 | |
| ###       "id": "4000",
 | |
| ###       "sku": "456",
 | |
| ###       "comment": "comment #1 54-456 (shard-1)",
 | |
| ###       "created_at": "2024-12-24T22:45:45.511675Z"
 | |
| ###     },
 | |
| ###     {
 | |
| ###       "id": "12001",
 | |
| ###       "sku": "789",
 | |
| ###       "comment": "comment #1 54-789 (shard-2)",
 | |
| ###       "created_at": "2024-12-24T22:45:39.449233Z"
 | |
| ###     }
 | |
| ###   ]
 | |
| ### }
 | |
| 
 | |
| 
 | |
| ### list comments by user, no comments for user
 | |
| POST http://localhost:8086/comment/list-by-user
 | |
| Content-Type: application/json
 | |
| 
 | |
| {"user_id": 32423423}
 | |
| 
 | |
| ### Expected:
 | |
| ### {
 | |
| ###   "comments": []
 | |
| ### }
 | 
