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

AttributeTypeDescription
recipe_id
string

Mandatory. Recipe id to which review relates

text
string

Optional. Text which will be attached to review

rating

object

Mandatory. Rate attached to review.

tags

object

Optional. Array of tags attached to review

image

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

AttributeTypeDescription
id
string

Mandatory. Post id (unique)

title
string

Optional. Deprecated. Title for conversation Post.

text

object

Optional. Text attached to post.

header

object

Optional. Information for displaying post on HomeFeed or in profile

posted_by

object

Mandatory. Data for displaying information about author

posted_at

datetime

Mandatory. Data on post was added

time_since_added

int

Mandatory. Information about time since the post was added

attachments

object

Optional. Identify type of attachment for post

images

object

Optional. Represents image attachments to regular post

recipe_ids

array

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

recipe_with_rating

object

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

community_ids

array

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

replies

object

Optional. Shows replies to post

reactions

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

AttributeTypeDescription
id
string

Mandatory. Reply id (unique)

text

object

Optional. Text attached to reply.

user

object

Mandatory. Data for displaying information about author

time_since_added

int

Mandatory. Information about time since the reply was added

attachments

object

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

images

array

Optional. Represents images attachments to reply.

recipe_ids

array

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

reactions

object

Optional. Shows reactions to post

total_count

integer

Mandatory. Total number of replies

paging

object

Standard pagination object

Last updated