Monday.com API
Monday API is available on Packagist (using semantic versioning), and installation via Composer is the recommended way to install Monday API. Just add this line to your composer.json
file:
"galata/laravel-monday-api": "~0.2"
or run
composer require galata/laravel-monday-api
This package uses autodiscovery, so you don't have to manually add anything to your config/app.php.
Add the ServiceProvider and the Facade to your config/app.php
:
'providers' => [
...
Galata\LaravelMondayAPI\MondayServiceProvider::class,
],
'aliases' => [
...
'Monday' => Galata\LaravelMondayAPI\MondayFacade::class,
]
OPTIONAL Then run the following command to publish the config to your config/ directory. It should be enough to add MONDAY_TOKEN=MYTOKEN to your .env file.
$ php artisan vendor:publish --tag=config
return [
'monday_token' => 'MYTOKEN', // the token for your tenant on monday.com
];
Interact with boards
# Get all boards
$all_boards = Monday::getBoards();
# Get Board id : 10012
$board_id = 10012;
$board = Monday::on($board_id)->getBoards();
# Get Board Columns
$board_id = 10012;
$boardColumns = Monday::on($board_id)->getColumns();
# Create Board, if success return board_id
$newboard = Monday::create( 'New Board Name', Galata\LaravelMondayAPI\MondayAPI\ObjectTypes\BoardKind::PUB );
$board_id = $newboard['create_board']['id'];
Interact with Itens
# Insert new Item on Board
$board_id = 10012;
$id_group = 'topics';
$column_values = [ 'text1' => 'Value...','text2' => 'Other value...' ];
$addResult = Monday::on($board_id)
->group($id_group)
->addItem( 'My Item Title', $column_values );
# If you want to use the `create_labels_if_missing` arguments; just add `true` as the third arguments (default: `false`)
$addResult = Monday::on($board_id)
->group($id_group)
->addItem( 'My Item Title', $column_values, true);
# if succes return
$item_id = $addResult['create_item']['id'];
# For update Item
$item_id = 34112;
$column_values = [ 'text1' => 'New Value','text2' => 'New other value...' ];
$updateResult = Monday::on($board_id)
->group($id_group)
->changeMultipleColumnValues($item_id, $column_values );
# Archive item
$result = Monday::on($board_id)
->group($id_group)
->archiveItem($item_id);
// Delete item
$result = Monday::on($board_id)
->group($id_group)
->deleteItem($item_id);
If you need specific action, you can run a custom Query or Mutation
// Run a custom query
$query = '
boards (ids: 12121212) {
groups (ids: group_id) {
items {
id
name
column_values {
id
text
title
}
}
}
}';
# For Query
$items = Monday::customQuery( $query );
# For Mutation
$items = Monday::customMutation( $query );