Skip to content
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,8 @@ monday.items.create_item(board_id='12345678', group_id='today', item_name='Do a

- `fetch_items_by_board_id([board_ids])` - Get all items on a board(s). Accepts a comma separated list of board ids.

- `create_board(board_name, board_kind, workspace_id)` - Create board with the given name and kind by (and optional) workspace id.


#### Users Resource (monday.users)
- `fetch_users(**kwargs)` - Fetch user information associated with an account. See Monday API docs for a list of accepted keyword arguments.
Expand Down
12 changes: 12 additions & 0 deletions monday/query_joins.py
Original file line number Diff line number Diff line change
Expand Up @@ -356,6 +356,18 @@ def get_columns_by_board_query(board_ids):
}''' % board_ids


def create_board_by_workspace_query(board_name, board_kind, workspace_id = None):
Comment thread
rhymiz marked this conversation as resolved.
Outdated
workspace_query = f'workspace_id: {workspace_id}' if workspace_id else ''
query = '''
mutation {
create_board (board_name:"%s", board_kind: %s, %s) {
id
}
}
''' % (board_name, board_kind, workspace_query)
return query


# USER RESOURCE QUERIES
def get_users_query(**kwargs):
query = '''query
Expand Down
6 changes: 5 additions & 1 deletion monday/resources/boards.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from monday.resources.base import BaseResource
from monday.query_joins import get_boards_query, get_boards_by_id_query, get_board_items_query, \
from monday.query_joins import create_board_by_workspace_query, get_boards_query, get_boards_by_id_query, get_board_items_query, \
get_columns_by_board_query


Expand All @@ -22,3 +22,7 @@ def fetch_items_by_board_id(self, board_ids):
def fetch_columns_by_board_id(self, board_ids):
query = get_columns_by_board_query(board_ids)
return self.client.execute(query)

def create_board(self, board_name, board_kind, workspace_id):
query = create_board_by_workspace_query(board_name, board_kind, workspace_id)
return self.client.execute(query)
12 changes: 11 additions & 1 deletion monday/tests/test_board_resource.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
from monday.tests.test_case_resource import BaseTestCase
from monday.query_joins import get_boards_query, get_boards_by_id_query, get_board_items_query, \
from monday.query_joins import create_board_by_workspace_query, get_boards_query, get_boards_by_id_query, get_board_items_query, \
get_columns_by_board_query


Expand All @@ -22,3 +22,13 @@ def test_get_board_items_query(self):
def test_get_columns_by_board_query(self):
query = get_columns_by_board_query(board_ids=self.board_id)
self.assertIn(str(self.board_id), query)

def test_create_board_by_workspace_query(self):
query_a = create_board_by_workspace_query(board_name=self.board_name, board_kind=self.board_kind, workspace_id=self.workspace_id)
self.assertIn(str(self.board_name), query_a)
self.assertIn(str(self.board_kind), query_a)
self.assertIn(str(self.workspace_id), query_a)
query_b = create_board_by_workspace_query(board_name=self.board_name, board_kind=self.board_kind)
self.assertIn(str(self.board_name), query_b)
self.assertIn(str(self.board_kind), query_b)
self.assertNotIn(str(self.workspace_id), query_b)
1 change: 1 addition & 0 deletions monday/tests/test_case_resource.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ def setUp(self):
self.group_name = "my_group"
self.item_name = "Nerd"
self.item_id = 24
self.board_name = "my_board"
self.board_id = 12
self.board_kind = "public"
self.group_id = 7
Expand Down