Voog.com

Article comments

Summary of article comments endpoints

Related endpoints:

List all available comments for requested article

GET /admin/api/articles/1/comments

By default, this requests returns a list of all comments (spam and non spam) for the requested article (newer first).

This endpoint also allows anonymous access that return only a list of non spam comments.

Example response (authenticated request):

Status: 200 OK
[
  {
    "id": 2,
    "author": "I'm a Spammer!",
    "body": "Buy something!",
    "spam": false,
    "created_at": "2014-02-07T10:54:08.000Z",
    "updated_at": "2014-02-07T10:56:07.000Z",
    "url": "http://helloworld.voog.co/admin/api/articles/1/comments/2",
    "article": {
      "id": 1,
      "title": "How I wrote my first article",
      "created_at": "2014-02-07T10:56:07.000Z",
      "updated_at": "2014-02-07T10:56:07.000Z",
      "url": "http://helloworld.voog.co/admin/api/articles/1",
      "public_url": "http://helloworld.voog.co/blog/how-i-wrote-my-first-article"
    }
  }, {
    "id": 1,
    "author": "Me",
    "body": "Hi!\r\n\r\nThis is a comment!!",
    "spam": false,
    "created_at": "2014-02-06T15:53:01.000Z",
    "updated_at": "2014-02-06T15:53:01.000Z",
    "url": "http://helloworld.voog.co/admin/api/articles/1/comments/1",
    "article": {
      "id": 1,
      "title": "How I wrote my first article",
      "created_at": "2014-02-07T10:56:07.000Z",
      "updated_at": "2014-02-07T10:56:07.000Z",
      "url": "http://helloworld.voog.co/admin/api/articles/1",
      "public_url": "http://helloworld.voog.co/blog/how-i-wrote-my-first-article"
    }
  }
]

Example response (anonymous request):

Status: 200 OK
[
  {
    "author": "I'm a Spammer!",
    "body": "Buy something!",
    "created_at": "2014-02-07T10:54:08.000Z",
    "article": {
      "id": 1,
      "title": "How I wrote my first article",
      "created_at": "2014-02-07T10:56:07.000Z",
      "url": "http://helloworld.voog.co/admin/api/articles/1",
      "public_url": "http://helloworld.voog.co/blog/how-i-wrote-my-first-article"
    }
  }, {
    "author": "Me",
    "body": "Hi!\r\n\r\nThis is a comment!!",
    "created_at": "2014-02-06T15:53:01.000Z",
    "article": {
      "id": 1,
      "title": "How I wrote my first article",
      "created_at": "2014-02-07T10:56:07.000Z",
      "url": "http://helloworld.voog.co/admin/api/articles/1",
      "public_url": "http://helloworld.voog.co/blog/how-i-wrote-my-first-article"
    }
  }
]

Parameters

  • per_page - elements per response (default: 50; maximum: 250).
  • page - requested page (default: 1).
  • not_spam - if present then returns only non spam comments. (eg ?not_spam=1). NB! Applies only to authenticated request.
  • spam - if present then returns only spam comments. (eg ?spam=1). NB! Applies only to authenticated request.

Filter attributes

Read more about filters.

  • Object comment attributes: id, spam, author, author_email, body, user_agent, referrer, created_at, updated_at.

Create a new comment

POST /admin/api/articles/1/comments

Allow to post a new comment.

This endpoint also allows anonymous access.

Example data:

{
  "author": "Me",
  "author_email": "marilyn@monroe.com",
  "body": "Hi!\r\n\r\nThis is a comment!!",
  "g-recaptcha-response": "valid-response-token"
}

The g-recaptcha-response value must be include to request when reCAPTCHA is enabled for the article. Read more about [Google reCAPTCHA v3]https://developers.google.com/recaptcha/docs/v3).

Example response (authenticated request):

Status: 201 Created
{
  "id": 1,
  "author": "Me",
  "body": "Hi!\r\n\r\nThis is a comment!!",
  "spam": false,
  "created_at": "2014-02-06T15:53:01.000Z",
  "updated_at": "2014-02-06T15:53:01.000Z",
  "url": "http://helloworld.voog.co/admin/api/articles/1/comments/1",
  "article": {
    "id": 1,
    "title": "How I wrote my first article",
    "created_at": "2014-02-07T10:56:07.000Z",
    "updated_at": "2014-02-07T10:56:07.000Z",
    "url": "http://helloworld.voog.co/admin/api/articles/1",
    "public_url": "http://helloworld.voog.co/blog/how-i-wrote-my-first-article"
  },
  "author_email": "marilyn@monroe.com",
  "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:27.0) Gecko/20100101 Firefox/27.0",
  "referrer": "http://helloworld.voog.co/blog/how-i-wrote-my-first-article"
}

Example response (anonymous request):

Status: 201 Created
{
  "author": "Me",
  "body": "Hi!\r\n\r\nThis is a comment!!",
  "created_at": "2014-02-06T15:53:01.000Z",
  "url": "http://helloworld.voog.co/admin/api/articles/1/comments/1",
  "article": {
    "id": 1,
    "title": "How I wrote my first article",
    "created_at": "2014-02-07T10:56:07.000Z",
    "url": "http://helloworld.voog.co/admin/api/articles/1",
    "public_url": "http://helloworld.voog.co/blog/how-i-wrote-my-first-article"
  }
}

Parameters

Required parameters are:

  • author - comment author name.
  • author_email - comment author email.
  • body - comment body.

Get data for a single comment

GET /admin/api/articles/1/comments/1

Example request:

GET http://helloworld.voog.co/admin/api/articles/1/comments/2

Example response:

Status: 200 OK
{
  "id": 2,
  "author": "I'm a Spammer!",
  "body": "Buy something!",
  "spam": false,
  "created_at": "2014-02-07T10:54:08.000Z",
  "updated_at": "2014-02-07T10:54:08.000Z",
  "url": "http://helloworld.voog.co/admin/api/articles/1/comments/2",
  "article": {
    "id": 1,
    "title": "How I wrote my first article",
    "created_at": "2014-02-07T10:56:07.000Z",
    "updated_at": "2014-02-07T10:56:07.000Z",
    "url": "http://helloworld.voog.co/admin/api/articles/1",
    "public_url": "http://helloworld.voog.co/blog/how-i-wrote-my-first-article"
  },
  "author_email": "spam@spam.com",
  "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:27.0) Gecko/20100101 Firefox/27.0",
  "referrer": "http://helloworld.voog.co/blog/how-i-wrote-my-first-article"
}

Toggle spam flag of a comment

PUT /admin/api/articles/1/comments/1/toggle_spam

This request toggles the comment spam flag.

Example request:

PUT http://helloworld.voog.co/admin/api/articles/1/comments/2/toggle_spam

Example response:

Status: 200 OK
{
  "id": 2,
  "author": "I'm a Spammer!",
  "body": "Buy something!",
  "spam": true,
  "created_at": "2014-02-07T10:54:08.000Z",
  "updated_at": "2014-02-07T10:54:08.000Z",
  "url": "http://helloworld.voog.co/admin/api/articles/1/comments/2",
  "article": {
    "id": 1,
    "title": "How I wrote my first article",
    "created_at": "2014-02-07T10:56:07.000Z",
    "updated_at": "2014-02-07T10:56:07.000Z",
    "url": "http://helloworld.voog.co/admin/api/articles/1",
    "public_url": "http://helloworld.voog.co/blog/how-i-wrote-my-first-article"
  }
}

Remove a comment

DELETE /admin/api/articles/1/comments/1

This request deletes the comment from the database.

Example request:

DELETE http://helloworld.voog.co/admin/api/articles/1/comments/1

Example response:

Status: 204 No Content

Remove all spam comment for requested article

DELETE /admin/api/articles/1/comments/delete_spam

This request deletes all comments flagged as spam under given article.

Example request:

DELETE http://helloworld.voog.co/admin/api/articles/1/comments/delete_spam

Example response:

Status: 200 OK
{
  "deleted_count": 1
}