VideoPlaylistManageRequest video.playlist-manage-request@1

Generated at from openvibe-contracts v0.177.0 and openvibe-sdk v0.44.0.

Version
1.0.0
Owner
media-hub
Visibility
public
Status
active
Compatibility
backward
Schema
https://openvibe.network/contracts/video/playlist-manage-request.v1.json

video.playlist-manage-request@1: bodies of video.playlist.manage on openvibe.video. POST /api/v1/video/playlists { title, description?, visibility? } creates one (default private; 422 playlist.invalid_title over 120 characters, playlist.invalid_description over 2,000, playlist.invalid_visibility, playlist.limit at 100 per owner). PATCH /api/v1/video/playlists/:id { title?, description?, visibility? }. POST /api/v1/video/playlists/:id/items { kind, id } adds one (409 playlist.item_duplicate; 422 playlist.invalid_kind, playlist.invalid_item, playlist.items_limit at 500). PATCH /api/v1/video/playlists/:id/items { items: [{ kind, id }, ...] } reorders: the full list, each item once (422 playlist.invalid_items). DELETE /api/v1/video/playlists/:id and /items/:kind/:itemId take no body. Another owner's playlist answers 404 playlist.not_found.

Fields

This schema has no named fields.

Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

Valid: add
{
  "kind": "clip",
  "id": 441
}
Valid: create
{
  "title": "Best of the week",
  "visibility": "public"
}
Valid: reorder
{
  "items": [
    {
      "kind": "clip",
      "id": 441
    },
    {
      "kind": "vod",
      "id": 5717
    }
  ]
}
Rejected: bad-kind
{
  "kind": "stream",
  "id": 1
}

Validate

const contracts = require('openvibe-contracts');
contracts.validate('video.playlist-manage-request@1', value);   // { valid, errors: [{ path, message }] }