Working with lists requires proper permissions for your skill, read the permissions part of the amazon documentation before using this module.
Before making the requests you need to provide the access token. That is why the init
function needs to be called first. All examples use the alexa-app module.
npm install --save @blazingedge/alexa-lists
If you don't have the permissions to work with lists, then you should send the permissions card
to the user.
function sendPermissionsCard (req, res) {
return res.card(alexaLists.getPermissionsCard()).send()
}
Creates a new with the provided name and a state set to active
.
alexaLists.init(token).createCustomList(listName)
async function createCustomList (req, res) {
const listHandler = alexaLists.init(_.get(req, 'context.System.apiAccessToken'))
const createdList = await listHandler.createCustomList('blazing new list')
...
}
Creates a new item for a specified list with the provided item status can be active
or completed
. The active
status is set by default
alexaLists.init(token).createNewListItem(listName, listItemName, listItemStatus)
async function createNewListItem (req, res) {
const listHandler = alexaLists.init(_.get(req, 'context.System.apiAccessToken'))
const createdListItem = await listHandler.createNewListItem('blazing list', 'buy apples', 'completed')
...
}
Delete a custom list by name.
alexaLists.init(token).deleteCustomList(listName)
async function deleteCustomList (req, res) {
const listHandler = alexaLists.init(_.get(req, 'context.System.apiAccessToken'))
const deletedList = await listHandler.deleteCustomList('blazing list')
...
}
Delete a list item from a specified list.
alexaLists.init(token).deleteListItem(listName, listItemName)
async function deleteListItem (req, res) {
const listHandler = alexaLists.init(_.get(req, 'context.System.apiAccessToken'))
const deletedListItem = await listHandler.deleteListItem('blazing list', 'buy apples')
...
}
Get specific list by name and/or status.
alexaLists.init(token).getList(listName, listState)
async function getList (req, res) {
const listHandler = alexaLists.init(_.get(req, 'context.System.apiAccessToken'))
const list = await listHandler.getList('blazing list', 'active')
...
}
Get a specific list item from a list.
alexaLists.init(token).getListItem(listName, listItemName)
async function getListItem (req, res) {
const listHandler = alexaLists.init(_.get(req, 'context.System.apiAccessToken'))
const listItem = await listHandler.getListItem('blazing list', 'list item')
...
}
Get all lists, without the list items.
alexaLists.init(token).getListMetadata(listName, listItemName)
async function getListMetadata (req, res) {
const listHandler = alexaLists.init(_.get(req, 'context.System.apiAccessToken'))
const lists = await listHandler.getListMetadata()
...
}
alexaLists.init(token).updateCustomList(listName, {
name: 'new list name',
state: 'completed'
})
async function updateCustomList (req, res) {
const listHandler = alexaLists.init(_.get(req, 'context.System.apiAccessToken'))
const updatedCustomList = await listHandler.updateCustomList('blazing list', {
name: 'new list name',
state: 'completed'
})
...
}
alexaLists.init(token).updateListItem(listName, listItemName, {
value: 'new list item name',
status: 'completed'
})
async function updateListItem (req, res) {
const listHandler = alexaLists.init(_.get(req, 'context.System.apiAccessToken'))
const updatedListItem = await listHandler.updateListItem('blazing list', 'some item', {
value: 'some updated item name',
status: 'completed'
})
...
}