InfoboardPosts

InfoboardPosts are the main entity of the Infoboard and define RTE content that can be shared with any desired Department.

They can have multiple InfoboardComments that may relate to the content of the InfoboardPost.

Model Definition

Alias

infoboardPost

Relations

Key
Relation
Type
Relation Field(s)

user

Belongs to

user_id

departments

Belongs to many

Intermediate table

seenUsers

Has many

infoboard_post_seen_users.post_id

readUsers

Has many

infoboard_post_read_users.post_id

comments

Has many

infoboard_comments.post_id

notifications

Has many

notifications.event_id, notifications.event_source

reactions

Morph many

reactions.reactable_type, reactions.reactable_id

currentReaction

Morph one

reactions.reactable_type, reactions.reactable_id, reactions.user_id

Computed properties

  • hash - The hashed id of the InfoboardPost.

Traits

  • TriggersNotifications

List

Get a list of all InfoboardPosts the current authenticated User is allowed to view.

Definition

GET /api/infoboard/posts

Example Request

$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('GET', '/api/infoboard/posts', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);

Example Response Body

[
  {
    "id": 1,
    "user_id": 3,
    "title": "Non curabitur gravida arcu ac",
    "text": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula. Libero enim sed faucibus turpis in eu.</p>",
    "reading_confirmation": false,
    "reactions_forbidden": false,
    "comments_allowed": true,
    "pinned": false,
    "planned_publish_at": null,
    "published_at": "2018-11-20 14:24:19",
    "created_at": "2018-11-20 14:24:19",
    "updated_at": "2018-12-20 15:37:53",
    "hash": "zn7m24owk63qolxryge8pj05"
  },
  {
    "id": 2,
    "user_id": 3,
    "title": "Placerat duis ultricies lacus sed",
    "text": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua</p>",
    "reading_confirmation": true,
    "reactions_forbidden": false,
    "comments_allowed": true,
    "pinned": false,
    "planned_publish_at": null,
    "published_at": "2018-11-20 14:24:19",
    "created_at": "2018-12-12 02:18:44",
    "updated_at": "2018-12-20 15:38:36",
    "hash": "6o8m0kz5yw10x1pr9e4vxj27"
  }
]

Show

Show a single InfoboardPost by id or hash.

Definition

GET /api/infoboard/posts/{idOrHash}

Example Request

$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('GET', '/api/infoboard/posts/1', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);

Example Response

{
  "id": 1,
  "user_id": 3,
  "title": "Non curabitur gravida arcu ac",
  "text": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Sollicitudin nibh sit amet commodo nulla facilisi nullam vehicula. Libero enim sed faucibus turpis in eu.</p>",
  "reading_confirmation": false,
  "reactions_forbidden": false,
  "comments_allowed": true,
  "pinned": false,
  "planned_publish_at": null,
  "published_at": "2018-11-20 14:24:19",
  "created_at": "2018-11-20 14:24:19",
  "updated_at": "2018-12-20 15:37:53",
  "hash": "zn7m24owk63qolxryge8pj05"
}

Create

Create a new InfoboardPost.

Definition

POST /api/infoboard/posts

Request Keys

Key
Type
Default
Description

title*

string

-

The title of the InfoboardPost.

text*

string

-

The content of the InfoboardPost.

reading_confirmation

boolean

false

Whether a reading confirmation is required.

reactions_forbidden

boolean

false

Whether Reactions for the InfoboardPost and it's InfoboardComments are forbidden.

comments_allowed

boolean

true

Whether comments are allowed.

department_ids*

string

-

The Departments that are allowed to see the InfoboardPost (seperated by comma).

planned_publish_at

datetime

-

The date when the post should be published.

published_at

datetime

-

The date when the post was published.

pinned

boolean

false

Wether the post should be pinned on top of the infoboard.

Keys with * are required.

Advanced Key-Specifications

  • published_at - Will be set automatically to wether the planned_publish_at date or the time of the request if none given. This information is used to determine if posts should be shown to users already. The date must be equal to or after the current time.

Example Request

$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('POST', '/api/infoboard/posts', [
    'headers' => ['Authorization' => "Bearer {accessToken}"],
    'json' => [
        'user_id' => 3,
        'title' => 'Sagittis purus sit amet volutpat',
        'text' => '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>',
        'reading_confirmation' => false,
        'reactions_forbidden' => false,
        'comments_allowed' => true,
        'department_ids' => '1,2,3'
    ]
]);

Example Response Body

{
  "status": "success",
  "data": {
    "id": 3,
    "user_id": 3,
    "title": "Sagittis purus sit amet volutpat",
    "text": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>",
    "reading_confirmation": false,
    "reactions_forbidden": false,
    "comments_allowed": true,
    "pinned": false,
    "planned_publish_at": null,
    "published_at": "2018-12-20 15:48:54",
    "updated_at": "2018-12-20 15:48:54",
    "created_at": "2018-12-20 15:48:54",
    "hash": "d54q7g6wnj1eylm8k9e0xpz2"
  }
}

Update

Update an existing InfoboardPost by id.

Definition

PUT /api/infoboard/posts/{id}

Request Keys

Key
Type
Description

title

string

The title of the InfoboardPost.

text

string

The content of the InfoboardPost.

reading_confirmation

boolean

Whether a reading confirmation is required .

reactions_forbidden

boolean

Whether Reactions for the InfoboardPost and it's InfoboardComments are forbidden.

comments_allowed

boolean

Whether comments are allowed.

department_ids

string

The Departments that are allowed to see the InfoboardPost (seperated by comma).

planned_publish_at

datetime

The date when the post should be published.

published_at

datetime

The date when the post was published.

pinned

boolean

Wether the post should be pinned on top of the infoboard.

Advanced Key-Specifications

  • planned_publish_at - This information is only nullable or changeable if the date is after or equal to the current date and the original planned_publish_at value is in the future.

  • published_at - Must be after or equal to the current date. Can be updated to "push" a post to the top. If planned_publish_at is set and valid on request, the value of published_at will be set accordingely.

Example Request

$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('PUT', '/api/infoboard/posts/3', [
    'headers' => ['Authorization' => "Bearer {accessToken}"],
    'json' => [
        'title' => 'Amet massa vitae tortor condimentum',
        'text' => '<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla.</p>',
        'reading_confirmation' => true,
        'reactions_forbidden' => true,
    ]
]);

Example Response

{
  "status": "success",
  "data": {
    "id": 3,
    "user_id": 3,
    "title": "Amet massa vitae tortor condimentum",
    "text": "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Morbi blandit cursus risus at ultrices mi tempus imperdiet nulla.</p>",
    "reading_confirmation": true,
    "reactions_forbidden": true,
    "comments_allowed": true,
    "pinned": false,
    "planned_publish_at": null,
    "published_at": "2018-12-20 15:48:54",
    "created_at": "2018-12-20 15:48:54",
    "updated_at": "2018-12-20 16:03:18",
    "hash": "d54q7g6wnj1eylm8k9e0xpz2"
  }
}

Delete

Delete an existing InfoboardPost by id.

Definition

DELETE /api/infoboard/posts/{id}

Example Request

$client = new GuzzleHttp\Client(['base_uri' => 'https://{tenant}.intratool.de']);
$response = $client->request('DELETE', '/api/infoboard/posts/3', [
    'headers' => ['Authorization' => "Bearer {accessToken}"]
]);

Example Response

{
  "status": "success",
  "data": null
}

Last updated