Posts and Reviews

Posts and reviews API allows to support social functions in your App, like writing reviews for recipes , add Posts (with different types attached content), leave replies.

General information

Reviews and Posts entities

Reviews and Posts are technically separated entities on Whisk from UX perspective but there are connected in the back-end side.

Review in UX - special content which user could leave for a certain recipe. Review should include binary rate mandatory, and text, image, tags as optiional parameters.

Post in UX - special type of content which could be created by user and contain text, image, recipe or review.

On back-end side when we are getting request for creating a review for some recipe from a user we automatically create post in our system and put created review in it. So from this moment client will get post id every time when requestion review. So it is possible to call operations on Post if user want to do something with review. For example, to report review client should call post reporting endpoint.

Client could create reviews via reviews api or post api but it is recommended to create and edit reviews via reviews api cause reviews have more lightweighted structure.

Review object

Review object is a group of objects and attributes

{
  "recipe_with_rating": {
    "text": "string"
    "recipe_id": "string",
    "rating": {
      "liked": true
    },
    "tags": [
      "string"
    ]
  },
  "image": {
    "url": "string",
    "width": 0,
    "height": 0,
    "selection": {
      "x": 0,
      "y": 0,
      "width": 0,
      "height": 0
    }
  }
}

Attributes description

Attribute
Type
Description

Mandatory. Recipe id to which review relates

Optional. Text which will be attached to review

object

Mandatory. Rate attached to review.

object

Optional. Array of tags attached to review

object

Optional. Image object

After review creation and automatic attaching to Post on BE side review attributes text and image copy to post attributes.

Post object

Post object is a group of objects and attributes

{
	"post": {
		"id": "string",
		"title": "string",
		"text": "string",
		"header": {
			"image": {}
			},
			"title": {
				"name": "string",
				"user_id": "string",
				"community_id": "string"
			},
			"subtitle": {
				"name": "string",
				"user_id": "string",
				"community_id": "string"
			}
		},
		"posted_by": {
			"id": "string",
			"first_name": "string",
			"last_name": "string",
			"username": "string",
			"picture": {}
			},
			"relation": {
				"is_following": true,
				"is_followed_by": true,
				"is_me": true
			}
		},
		"posted_at": "string",
		"time_since_added": 0,
		"attachments": {
			"images": [],
			"recipes": [],
			"recipe_with_rating": {
				"recipe": {},
				"rating": {
					"liked": true
				},
				"tags": [
					{
						"name": "string",
						"display_name": "string"
					}
				]
			},
			"communities": []
		},
		"replies": {
			"reply_count": 0
		},
		"reactions": {
			"count": 0,
			"my_like": true,
			"sample": []
		}
	}
}

Attributes description

Attribute
Type
Description

Mandatory. Post id (unique)

Optional. Deprecated. Title for conversation Post.

object

Optional. Text attached to post.

object

Optional. Information for displaying post on HomeFeed or in profile

object

Mandatory. Data for displaying information about author

datetime

Mandatory. Data on post was added

int

Mandatory. Information about time since the post was added

object

Optional. Identify type of attachment for post

object

Optional. Represents image attachments to regular post

array

Optional. Shows if recipe was added as attachment to post. Can't use with recipe_with_rating and other types

object

Optional.Shows if recipe review was added as attachment to post. Can't use with other types such as recipe_ids

array

Optional. Shows if communities were added to posts. Can't be used with other attachment types.

object

Optional. Shows replies to post

object

Optional. Shows reactions to post

Reply object

Reply object is a group of objects and attributes

{
	"replies": [
		{
			"id": "string",
			"text": {
				"text": "string"
			},
			"attachments": {
				"images": [],
				"recipes": []
			},
			"user": {
				"id": "string",
				"first_name": "string",
				"last_name": "string",
				"username": "string",
				"picture": {
					"url": "string",
					"width": 0,
					"height": 0,
					"selection": {
						"x": 0,
						"y": 0,
						"width": 0,
						"height": 0
					}
				},
				"relation": {
					"is_following": true,
					"is_followed_by": true,
					"is_me": true
				}
			},
			"reactions": {
				"count": 0,
				"my_like": true,
				"sample": []
			},
			"time_since_added": 0
		}
	],
	"total_count": 0,
	"paging": {
		"cursors": {
			"after": "string",
			"before": "string"
		},
		"total": "string"
	}
}

Attributes description

Attribute
Type
Description

Mandatory. Reply id (unique)

object

Optional. Text attached to reply.

object

Mandatory. Data for displaying information about author

int

Mandatory. Information about time since the reply was added

object

Optional. Identify type of attachment for reply. Could be either image or recipe. If there is no attachment it could be skipped

array

Optional. Represents images attachments to reply.

array

Optional. Shows if recipe was added as attachment to rely.

object

Optional. Shows reactions to post

integer

Mandatory. Total number of replies

object

Standard pagination object

Last updated