zef-dev / convoworks-core

PHP framework for handling conversational services like Amazon Alexa skills, Google Assistant, Viber, FB messenger ...
https://convoworks.com
MIT License
25 stars 2 forks source link

List Visual Block #9

Open mmarcec007 opened 3 years ago

mmarcec007 commented 3 years ago

List Block Define a new block in convoworks with name List Block which will make it easier to work with lists on Amazon Alexa, Google Assistant, Facebook Messenger and Viber.

Block Properties itself:

Block Containers:

Additional specifications:

Please also refer to the Dummy representation of the List Block.

Dummy representation of the List Block: list_block_image

mmarcec007 commented 3 years ago

Here is an quick overview of the interface infrastructure for the List Visual Element.

IConvoListRequest makes it easier to detect any selected list item after a list response was sent.

interface IConvoListRequest extends IConvoRequest
{
    /**
     * @return int
     */
    public function getSelectedItemIndex() : int;
}

IConvoListResponse makes it easier to declare an list response.

interface IConvoListResponse extends IConvoResponse
{
    public function getListResponse(IVisualList $listDefinition) : array;
}

IVisualList is used in IConvoListResponse ->getListResponse(IVisualList $listDefinition) list response. This definition makes it clearer how the ListResponse should be formed.

interface IVisualList {
    public function getListTitle() : string;
    public function getListType() : string;
    public function getListItems() : array;
}

IVisualItem is part of ListItems in IVisualList.

interface IVisualItem
{
    public function getTitle() : string;
    public function getSubtitle() : string;
    public function getDescription() : string;
    public function getImageURL() : string;
    public function getImageText() : string;
}