# Trello to Deck

Migrate your Trello Board to Nextcloud Deck.

## Getting Started

- Install `trello-to-deck`:

e.g.

```bash
cargo install trello-to-deck
```

- Create a starter configuration file

```bash
trello-to-deck init
```

This will create a `trello-to-deck.toml` file in the current directory.

Edit this file to add your Trello and Nextcloud credentials.

### Trello Credentials

To autheniticate to Trello and be able to download the attachements for each card, you need to register a Power Up as a Developer.
This is free and easy, following these instructions;

- Login to <https://trello.com/>
- Visit: <https://trello.com/power-ups/admin>
- Click *New* to create a new Power-Up/Integration
- Complete the *New Power-Up or Integration* form:
  - Power-Up or Integrtation Name: *Trello to Deck*
  - Workspace: select the workspace you went to export your boards from
  - IFrame: (ignore)
  - Email: your email
  - Support: your email
  - Author: your name
  - Click *Create*
- API Key: click *Generate a new API key* (twice)
- Copy your *API key* into your `trello-to-deck.toml` file
- To the right of the API Key, click on the *Token* link at the end of the paragraph.
- On the 'Would you like to give the following application access to your account?' page, scroll down and click *Allow*
- Copy the token into you `trello-to-deck.toml` file

### Nextcloud Credentials

To authenticate with Nextcloud Deck, you'll need to obtain the necessary credentials:

1. Log in to your Nextcloud instance
2. Go to Settings > Security
3. Under the "App passwords / devices" section, create a new app password
4. Enter a name for the device (e.g., "Trello to Deck")
5. Click "Create new app password"
6. Copy the generated username and password
7. Add these credentials to your `trello-to-deck.toml` file

### Verify configuration

Run the `check` command to validate your configuration:

```bash
trello-to-deck check
```

## Development

As part of building the import server, the following commands exercise each operation involved:

- [x] trello member get - includes list of boards
- [x] trello board get - includes list of stacks
- [x] trello stack get - includes list of cards
- [x] trello card get - includes list of attachments
- [x] trello attachment get - includes download url
- [x] trello attachment save - saves to disk
- [x] nextcloud deck get - includes list of boards
- [x] nextcloud board get - includes list of stacks
- [x] nextcloud stack get - includes list of cards
- [x] nextcloud card get - shows card title
- [x] nextcloud card create
- [x] nextcloud card add-label
- [x] nextcloud card add-attachment