---
title: "Create, update, delete"
output: rmarkdown::html_vignette
vignette: >
  %\VignetteIndexEntry{Create, update, delete}
  %\VignetteEngine{knitr::rmarkdown}
  %\VignetteEncoding{UTF-8}
---

```{r, include = FALSE}
knitr::opts_chunk$set(
  collapse = TRUE,
  comment = "#>"
)
```

This document explains how to add, update and delete resources via Trello API.
This requires authentication, as explained [here](../articles/auth-access.html).

Creating and modifying resources
--------------------------------

The `create_resource()` function allows you to create new boards, cards, lists
and other resources. To create a new resource, specify its type (e.g. "card")
using the `resource` argument. Further details such as name or description must
be passed as a named list using the `body` argument.

The following example creates a new card and places it at the bottom of a list
(see the [Trello API reference](https://developers.trello.com/reference)
for query parameters):

```r
library(trelloR)
payload = list(
  name = "My new card!", desc = "An example card.", 
  pos = "bottom",
  idList = list_id # get it by calling get_board_lists()
)
create_resource(model = "card", body = payload)
```
When successful, the request returns a named list of values describing the newly
created resource, including its ID. This is very useful as you can immediately
capture the ID if you need it.

The `update_resource()` function follows the similar logic, but can only be used
with existing resources.

To delete resources, use `delete_resource()`, but beware: Deleted resources
cannot be brought back!

__Built with__

```{r}
sessionInfo()
```
