API Reference
Dooray
- class dooray.Dooray(token=None, endpoint='https://api.dooray.com', user_agent='PyDooray/Python')
This is the main class you instantiate to access the Dooray! API
- Parameters
token (str) – Dooray! API token
endpoint (str) – Dooray! API endpoint, defaults to “https://api.dooray.com”
user_agent (str) – User agent string, defaults to “PyDooray/Python”
- messenger
Messenger object to access Dooray! Messenger API
- project
Project object to access Dooray! Project API
- Type
- get_members(name=None, user_code=None, user_code_exact=None, id_provider_user_id=None, external_emails=None, page=0, size=20)
Returns a list of members which match the given criteria.
- Calls
- Parameters
name (str) – Name of the member
user_code (str) – User ID of the member, partial match
user_code_exact (str) – User ID of the member, exact match
id_provider_user_id (str) – User ID from SSO provider
external_emails (str) – List of external emails of the member, exact match, comma separated
page (int) – Page number, starts from 0, defaults to 0
size (int) – Page size, defaults to 20, max is 100
- Returns
dooray.DoorayObjects.DoorayListResponseofdooray.Member.Member
- get_incoming_hook(incoming_hook_id)
Get an incoming hook information
- Calls
- Parameters
incoming_hook_id (str) – Incoming hook ID
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.IncomingHook.IncomingHook
Dooray Messenger
- class dooray.DoorayMessenger(token=None, endpoint='https://api.dooray.com', user_agent='PyDooray/Python')
This is the class to access the Dooray! Messenger API.
Instead of instantiating this class directly, use
dooray.Dooray.messenger- get_channels()
Get a list of messenger channels available.
- send_direct_message(member_id, text)
Send a direct message to a member.
- Parameters
member_id (str) – Member ID of the recipient
text (str) – Message text
- Returns
- send_channel_message(channel_id, text)
Send a message to a channel.
- Call
- Parameters
channel_id (str) – Channel ID
text (str) – Message text
- Returns
- send_channel_log(channel_id, text)
- join_channel(channel_id, member_ids)
Add members to a messenger channel.
- Calls
- Parameters
channel_id (str) – Channel ID
member_ids (str or list) – List of member IDs
- Returns
- leave_channel(channel_id, member_ids)
Remove members from a messenger channel.
- Calls
- Parameters
channel_id (str) – Channel ID
member_ids (str or list) – List of member IDs
- Returns
- create_channel(title, member_ids, id_type='memberId', channel_type='private', capacity=100)
Create a new messenger channel.
- Calls
- Parameters
title (str) – Title of the channel
member_ids (list) – Member IDs of the channel members
id_type (str) – Type of the member IDs. Can be ‘memberId’ or ‘email’. Default is ‘memberId’.
channel_type (str) – Type of the channel. Can be ‘private’ or ‘public’. Default is ‘private’.
capacity (int) – Capacity of the channel. Default is 100.
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.DoorayObjects.Relation
Dooray Project
- class dooray.DoorayProject(token=None, endpoint='https://api.dooray.com', user_agent='PyDooray/Python')
This is the class to access the Dooray! Project API
Instead of instantiating this class directly, use
dooray.Dooray.project- is_creatable(code)
Test if a project is creatable.
- Calls
- Parameters
code (str) – Project name
- Returns
True if creatable, False otherwise
- create(code, description, scope='private')
Create a new project.
- Calls
- Parameters
code (str) – Project name
description (str) – Project description
scope (str) – Project scope. Can be ‘private’ or ‘public’. Default is ‘private’.
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.DoorayObjects.Relation
- get(project_id)
Get a project information.
- Calls
- Parameters
project_id (str) – Project ID
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.Project.Project
- get_workflows(project_id)
Get a project workflows.
- Calls
- Parameters
project_id (str) – Project ID
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.Project.Workflow
- create_email_address(project_id, email_address, name)
Create a new project email address.
- Calls
- Parameters
project_id (str) – Project ID
email_address (str) – Email address
name (str) – Name
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.DoorayObjects.Relation
- get_email_address(project_id, email_address_id)
Get a project email address.
- Calls
GET /project/v1/projects/{project-id}/email-addresses/{email-address-id}
- Parameters
project_id (str) – Project ID
email_address_id (str) – Email address ID
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.Project.EmailAddress
- create_tag(project_id, name=None, color=None)
Create a new tag for a project.
- Calls
- Parameters
project_id (str) – Project ID
name (str) – Name of the tag
color (str) – Color of the tag in hexadecimal format. For example, ‘FFFFFF’
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.DoorayObjects.Relation
- get_tag(project_id, tag_id)
Get a project tag.
- Calls
- Parameters
project_id (str) – Project ID
tag_id (str) – Tag ID
- Returns
- create_milestone(project_id, name, start_at, end_at)
Create a new milestone for a project.
- Calls
- Parameters
project_id (str) – Project ID
name (str) – Name of the milestone
start_at (str) – Start date of the milestone in ‘YYYY-MM-DD+ZZ’ format. For example, ‘2019-01-01+00:00’
end_at (str) – End date of the milestone in ‘YYYY-MM-DD+ZZ’ format. For example, ‘2019-01-01+00:00’
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.DoorayObjects.Relation
- get_milestones(project_id, page=0, size=20, status=None)
Get milestones of a project.
- Calls
- Parameters
project_id (str) – Project ID
page (int) – Page number. Starts from 0. Default is 0.
size (int) – Number of items per page. Default is 20.
status ('open' | 'closed') – Filter milestones by status. Default is None.
- Returns
dooray.DoorayObjects.DoorayListResponseofdooray.Project.Milestone
- get_milestone(project_id, milestone_id)
Get a milestone in a project.
- Calls
GET /project/v1/projects/{project-id}/milestones/{milestone-id}
- Parameters
project_id (str) – Project ID
milestone_id (str) – Milestone ID
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.Project.Milestone
- update_milestone(project_id, milestone_id, name, status, start_at, end_at)
Update a milestone.
- Calls
PUT /project/v1/projects/{project-id}/milestones/{milestone-id}
- Parameters
project_id (str) – Project ID
milestone_id (str) – Milestone ID
name – Name of the milestone
status ('open' | 'closed') – Status of the milestone.
start_at (str) – Start date of the milestone in ‘YYYY-MM-DD+ZZ’ format. For example, ‘2019-01-01+00:00’
end_at (str) – End date of the milestone in ‘YYYY-MM-DD+ZZ’ format. For example, ‘2019-01-01+00:00’
- Returns
- delete_milestone(project_id, milestone_id)
Delete a milestone in a project.
- Calls
DELETE /project/v1/projects/{project-id}/milestones/{milestone-id}
- Parameters
project_id (str) – Project ID
milestone_id (str) – Milestone ID
- Returns
- create_hook(project_id, url, send_events)
Create a hook in a project.
- Calls
- Parameters
project_id (str) – Project ID
url (str) – URL of the hook
send_events (list) – Events list to be sent to the hook. Possible events are as following: “postCreated”, “postCommentCreated”, “postTagChanged”, “postDueDateChanged”, “postWorkflowChanged”
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.DoorayObjects.Relation
- add_member(project_id, member_id, role='member')
Add a member to a project.
- Calls
- Parameters
project_id (str) – Project ID
member_id (str) – Member ID
role ('member' | 'admin') – Role of the member. Default is ‘member’
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.Project.ProjectMember
- get_member(project_id, member_id)
Get a member of a project.
- Calls
- Parameters
project_id (str) – Project ID
member_id (str) – Member ID
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.Project.ProjectMember
- get_member_groups(project_id, page=0, size=20)
Get member groups of a project.
- Calls
- Parameters
project_id (str) – Project ID
page (int) – Page number. Starts from 0. Default is 0
size (int) – Number of items per page. Default is 20
- Returns
dooray.DoorayObjects.DoorayListResponseofdooray.Project.MemberGroup
- get_member_group(project_id, member_group_id)
Get a member group of a project.
- Calls
GET /project/v1/projects/{project-id}/member-groups/{member-group-id}
- Parameters
project_id (str) – Project ID
member_group_id (str) – Member group ID
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.Project.MemberGroup
- create_template(project_id, template)
Create a post template to a project.
- Calls
- Parameters
project_id (str) – Project ID
template – Template object to write. See
dooray.TemplateBuilder
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.DoorayObjects.Relation
- get_templates(project_id, page=0, size=20)
Get post templates of a project.
- Calls
- Parameters
project_id (str) – Project ID
page (int) – Page number. Starts from 0. Default is 0
size (int) – Number of items per page. Default is 20
- Returns
dooray.DoorayObjects.DoorayListResponseofdooray.Project.ReadTemplate
- get_template(project_id, template_id, interpolation=False)
Get a post template of a project.
- Calls
GET /project/v1/projects/{project-id}/templates/{template-id}
- Parameters
project_id (str) – Project ID
template_id (str) – Template ID
interpolation (bool) – If true, returns the interpolated template. Default is false
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.Project.ReadTemplate
- update_template(project_id, template_id, template)
Update a post template of a project.
- Calls
PUT /project/v1/projects/{project-id}/templates/{template-id}
- Parameters
project_id (str) – Project ID
template_id (str) – Template ID
template – Template object to write. See
dooray.TemplateBuilder
- Returns
- delete_template(project_id, template_id)
Delete a post template of a project.
- Calls
DELETE /project/v1/projects/{project-id}/templates/{template-id}
- Parameters
project_id (str) – Project ID
template_id (str) – Template ID
- Returns
- create_post(project_id, post)
Create a post to a project.
- Calls
- Parameters
project_id (str) – Project ID
post – The post object to be written. See
dooray.PostBuilderfor more details.
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.DoorayObjects.Relation
- get_posts(project_id, page=0, size=20, from_email_address=None, from_member_ids=None, to_member_ids=None, cc_member_ids=None, tag_ids=None, parent_post_id=None, post_workflow_classes=None, post_workflow_ids=None, milestone_ids=None, created_at=None, updated_at=None, due_at=None, order=None)
Get posts of a project which match the given criteria.
- Calls
- Parameters
project_id (str) – Project ID
page (int) – Page number. Starts from 0. Default is 0.
size (int) – Number of posts per page. Default is 20.
from_email_address (str) – Email address of the sender. Default is None.
from_member_ids (str) – Member ID of the sender. Default is None.
to_member_ids (str) – Member ID of the receiver. Default is None.
cc_member_ids (str) – Member ID of the CC receiver. Default is None.
tag_ids (str) – Project tag ID. Default is None.
parent_post_id (str) – Parent post ID. Default is None.
post_workflow_classes (str or list of str) – Post workflow classes. Default is None.
post_workflow_ids (str or list of str) – Post workflow IDs. Default is None.
milestone_ids (str) – Milestone ID. Default is None.
created_at (str) – Created at. See below for the date format. Default is None.
updated_at (str) – Updated at. See below for the date format. Default is None.
due_at (str) – Due at. See below for the date format. Default is None.
order (str) – Sort order of the returned posts. Possible values are ‘postDueAt’, ‘postUpdatedAt’, ‘createdAt’, ‘-postDueAt’, ‘-postUpdatedAt’ and ‘-createdAt’. ‘-’ means reverse order. Default is None.
- Returns
dooray.DoorayObjects.DoorayListResponseofdooray.Project.ReadPost- Date format
Possible values are as follows:
today
thisweek: A week starts from Monday
prev-{N}d: N is an integer. Example: prev-7d
next-{N}d: N is an integer. Example: next-7d
{YYYY-MM-DDThh:mm:ssZ}~{YYYY-MM-DDThh:mm:ssZ}: A range of dates in ISO8601 format. Example: 2019-01-01T00:00:00Z~2019-01-02T00:00:00Z
- get_post(project_id, post_id)
Get a post.
- Calls
- Parameters
project_id (str) – Project ID.
post_id (str) – Post ID.
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.Project.ReadPost
- update_post(project_id, post_id, post)
Update a post.
- Calls
- Parameters
project_id (str) – Project ID.
post_id (str) – Post ID.
post – The post object to be written. See
dooray.PostBuilderfor more details.
- Returns
- set_post_workflow_for_member(project_id, post_id, member_id, workflow_id)
Set a workflow of a post for a member.
- Calls
PUT /project/v1/projects/{project-id}/posts/{post-id}/to/{member-id}
- Parameters
project_id (str) – Project ID.
post_id (str) – Post ID.
member_id (str) – Member ID.
workflow_id (str) – Workflow ID.
- Returns
- set_post_workflow(project_id, post_id, workflow_id)
Set a workflow of a post.
- Calls
PUT /project/v1/projects/{project-id}/posts/{post-id}/set-workflow
- Parameters
project_id (str) – Project ID.
post_id (str) – Post ID.
workflow_id (str) – Workflow ID.
- Returns
- set_post_as_done(project_id, post_id)
Set a post as done.
- Calls
PUT /project/v1/projects/{project-id}/posts/{post-id}/set-done
- Parameters
project_id (str) – Project ID.
post_id (str) – Post ID.
- Returns
- create_post_log(project_id, post_id, content)
Add a log to a post.
- Calls
- Parameters
project_id (str) – Project ID.
post_id (str) – Post ID.
content (str) – The content of the log.
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.DoorayObjects.Relation
- get_post_logs(project_id, post_id, page=None, size=None, order=None)
Get logs of a post.
- Calls
- Parameters
project_id (str) – Project ID.
post_id (str) – Post ID.
page (int) – Page number. Starts from 0. Default is 0.
size (int) – Number of logs per page. Default is 20.
order (str) – Order of logs. Possible values are ‘createdAt’ and ‘-createdAt’. Default is None.
- Returns
dooray.DoorayObjects.DoorayListResponseofdooray.Project.PostLog
- get_post_log(project_id, post_id, log_id)
Get a log of a post.
- Calls
GET /project/v1/projects/{project-id}/posts/{post-id}/logs/{log-id}
- Parameters
project_id (str) – Project ID.
post_id (str) – Post ID.
log_id (str) – Log ID.
- Returns
dooray.DoorayObjects.DoorayResponseofdooray.Project.PostLog
- update_post_log(project_id, post_id, log_id, content)
Update a log of a post.
- Calls
PUT /project/v1/projects/{project-id}/posts/{post-id}/logs/{log-id}
- Parameters
project_id (str) – Project ID.
post_id (str) – Post ID.
log_id (str) – Log ID.
content (str) – The content of the log.
- Returns
- delete_post_log(project_id, post_id, log_id)
Delete a log of a post.
- Calls
DELETE /project/v1/projects/{project-id}/posts/{post-id}/logs/{log-id}
- Parameters
project_id (str) – Project ID.
post_id (str) – Post ID.
log_id (str) – Log ID.
- Returns
DoorayObject Builder
Post Builder
- class dooray.PostBuilder
A helper class to write or update a post.
See
dooray.DoorayProject.create_postordooray.DoorayProject.update_post.Usage:
import dooray d = dooray.Dooray(API_TOKEN) post = dooray.PostBuilder()\ .set_subject('test')\ .set_body('test')\ .add_to_member(member_id)\ .create() d.project.create_post(PROJECT_ID, post)
- create()
Create a new post object to be written.
- set_parent_post_id(parent_post_id)
Set the parent post id.
- Parameters
parent_post_id (str) – The parent post id.
- set_body(body)
Set the body of the post.
- Parameters
body (str) – The body of the post.
- set_subject(subject)
Set the subject of the post.
- Parameters
subject (str) – The subject of the post.
- set_due_date(due_date)
Set the due date of the post.
- Parameters
due_date (str) – The due date of the post in ISO 8601 format.
- set_milestone_id(milestone_id)
Set the milestone id of the post.
- Parameters
milestone_id (str) – The milestone id of the post.
- set_priority(priority)
Set the priority of the post.
- Parameters
priority (str) – The priority of the post. Possible values are: ‘highest’, ‘high’, ‘normal’, ‘low’, ‘lowest’ and ‘none’
- set_version(version)
Set the version of the post.
- Parameters
version (str) – The version of the post.
- add_tag_id(tag_id)
Add a tag id to the post.
- Parameters
tag_id (str) – The tag id to add.
- add_to_member(member_id)
Add recipient to the post by member ID
- Parameters
member_id (str) – The member ID to add.
- add_to_email_user(email, name)
Add recipient to the post by email and name
- Parameters
email (str) – The email of the user to add.
name (str) – The name of the user to add.
- add_cc_member(member_id)
Add cc recipient to the post by member ID
- Parameters
member_id (str) – The member ID to add.
- add_cc_email_user(email, name)
Add cc recipient to the post by email and name
- Parameters
email (str) – The email of the user to add.
name (str) – The name of the user to add.
Template Builder
- class dooray.TemplateBuilder
A helper class to write or update a post template.
See
dooray.DoorayProject.create_templateordooray.DoorayProject.update_template.Usage:
import dooray d = dooray.Dooray(API_TOKEN) post = dooray.TemplateBuilder()\ .set_subject('test')\ .set_body('test')\ .add_to_member(member_id)\ .create() d.project.create_template(PROJECT_ID, post)
- create()
Create a new post object to be written.
- set_template_name(template_name)
Set the template name.
- Parameters
template_name (str) – The template name.
- set_body(body)
Set the body of the template.
- Parameters
body (str) – The body of the template.
- set_guide(guide)
Set the guide of the template.
- Parameters
guide (str) – The guide of the template.
- set_subject(subject)
Set the subject of the template.
- Parameters
subject (str) – The subject of the template.
- set_due_date(due_date)
Set the due date of the template.
- Parameters
due_date (str) – The due date of the template in ISO 8601 format.
- set_milestone_id(milestone_id)
Set the milestone id of the template.
- Parameters
milestone_id (int) – The milestone id of the template.
- set_priority(priority)
Set the priority of the template.
- Parameters
priority (str) – The priority of the template. Possible values are: ‘highest’, ‘high’, ‘normal’, ‘low’, ‘lowest’ and ‘none’
- set_is_default(is_default)
Set if this template is the default template of this project or not.
- Parameters
is_default (bool) – If true, this template is the default template of this project.
- add_tag_id(tag_id)
Add a tag id to the post.
- Parameters
tag_id (str) – The tag id to add.
- add_to_member(member_id)
Add recipient to the template by member ID
- Parameters
member_id (str) – The member ID to add.
- add_to_email_user(email, name)
Add recipient to the template by email and name
- Parameters
email (str) – The email of the user to add.
name (str) – The name of the user to add.
- add_cc_member(member_id)
Add cc recipient to the template by member ID
- Parameters
member_id (str) – The member ID to add.
- add_cc_email_user(email, name)
Add cc recipient to the template by email and name
- Parameters
email (str) – The email of the user to add.
name (str) – The name of the user to add.
Messenger Hook
- class dooray.MessengerHook(hook_url, hook_name='My Bot', hook_icon='https://static.dooray.com/static_images/dooray-bot.png', user_agent='PyDooray/Python')
Dooray! messenger incoming hook helper class.
- Parameters
hook_url (str) – Hook URL
hook_name (str, optional) – Name of the hook. Defaults to “My Bot”
hook_icon (str, optional) – Icon URL of the hook. Defaults to “https://static.dooray.com/static_images/dooray-bot.png”
user_agent (str, optional) – User agent of the request. Defaults to “PyDooray/Python”
- send(text, attachments=None)
Send a message to the hook.
- Parameters
text (str) – Message text
attachments (list, optional) – List of dictionaries of attachments. Attachment specifications could be found from Dooray Messenger Incoming Hook Data Format. You may also use
dooray.MessengerHookAttachmentsto create an input for this parameter. Defaults to None
- class dooray.MessengerHookAttachments
Dooray! messenger incoming hook attachment helper class.
Usage:
import dooray attachments = dooray.MessengerHookAttachments.builder()\ .add_attachment(title='Nice title', title_link= 'http://dooray.com/', text='Simple text', color='red')\ .add_attachment(text='Awesome text in purple box', color='purple')\ .create()
- static builder()
Create a new builder.
- add_attachment(title=None, title_link=None, text=None, color=None)
Add an attachment to the builder.
- Parameters
title (str, optional) – Title of the attachment. Defaults to None
title_link (str, optional) – Title link of the attachment. Defaults to None
text (str, optional) – Text of the attachment. Defaults to None
color (str, optional) – Color of the attachment. Defaults to None
- create()
Create a list of attachments.
Dooray Objects
Basic Response Objects
- class dooray.DoorayObjects.ResponseHeader(data)
- is_successful
Tell if the request was successful or not.
- Type
bool
- result_code
The result code of the request.
- Type
int
- result_message
The result message of the request.
- Type
str
- class dooray.DoorayObjects.DoorayResponse(data, obj=None)
The response of the request. It contains the response header and the response result. The type of the result differs by the request.
For example,
dooray.DoorayMessenger.create_channelreturns this object with the result ofdooray.DoorayObjects.Relationobject. Therefore, you can access the response result like this:Example:
import dooray d = dooray.Dooray(API_TOKEN) response = d.messenger.create_channel(title='test', ...) channel_id = response.result.id
- header
The header of the response.
- result
The result of the response.
- Type
Differs by the request.
- class dooray.DoorayObjects.DoorayListResponse(data, obj, page=0, size=20)
The list response of the request. It contains the response header and the response result. The type of the result is a list of objects which differ by the request. In addition, the pagination information like total_count, page and size is also included.
For example,
dooray.DoorayMessenger.get_channelsreturns this object with the result as the list ofdooray.Messenger.Channelobject. Therefore, you can access the response result like this:Example:
import dooray d = dooray.Dooray(API_TOKEN) response = d.messenger.get_channels( ... ) for channel in response.result: print(channel.title)
- total_count
The total count of the response.
- Type
int
- header
The header of the response.
- result
The result of the response in list form.
- Type
list of response objects which differ by the request.
- page
The page number of the response. Starts from 0.
- Type
int
- size
The size of the response.
- Type
int
Messenger Response Objects
- class dooray.Messenger.Channel(data)
- id
- title
- organization
- type
The type of the channel. Possible values are direct, private, me and bot.
- users
- me
- Type
- capacity
- status
The status of the channel. Possible values are system, normal, archived and deleted.
- created_at
- updated_at
- archived_at
- displayed
- Type
bool
Project Response Objects
- class dooray.Project.Project(data)
- id
- code
- description
- scope
- state
- type
- organization
- wiki
- drive
- class dooray.Project.Tag(data)
- id
- name
- color
The color of the tag in hexadecimal format. Example: 00ff00
- class dooray.Project.Milestone(data)
- id
- name
- status
The status of the milestone. Possible values are open and closed.
- started_at
- ended_at
- closed_at
- created_at
- updated_at
- class dooray.Project.MemberGroup(data)
- id
- code
- created_at
- updated_at
- project
- members
- Type
list of
dooray.MemberGroup.MemberGroupMember
- class dooray.Project.ReadPost(data)
- id
- project
- task_number
- closed
- closed_at
- updated_at
- number
- parent
- workflow_class
The workflow class of the post. Possible values are registered, working and closed
- workflow
- milestone
- tags
- Type
list of
dooray.Project.Tag
- users
- body
- subject
The subject of the post or the template.
- due_date
The due date of the post or the template.
- priority
The priority of the post or the template.
- class dooray.Project.ReadTemplate(data)
- users
- body
- subject
The subject of the post or the template.
- due_date
The due date of the post or the template.
- priority
The priority of the post or the template.
- id
- project
- template_name
- guide
- is_default
- Type
bool
- milestone
- tags
- Type
list of
dooray.Project.Tag
- class dooray.Project.PostLog(data)
- id
- post
- type
The type of log. Possible values are comment and ‘event`.
- subtype
the subtype of the log. Possible values are general, from_email and sent_email.
- created_at
- modified_at
- creator
- mailUsers
- body
- class dooray.Project.PostUsers(data=None)
- user_from
- to
- Type
list of
dooray.Project.PostUser
- cc
- Type
list of
dooray.Project.PostUser