VK Teams Notifications JIRA Plugin
- Bot configuration - https://{jiraUrl}/secure/MyteamConfiguration!default.jspa
- Subscriptions - https://{jiraUrl}/myteam/subscriptions
- Issue creation by reply - https://{jiraUrl}/myteam/projects/{projectKey}/settings/chats
- Access request configuration - https://{jiraUrl}/secure/AccessRequestConfiguration.jspa?project={projectKey}
ru.mail.jira.plugins.myteam.protocol.MyteamService
package ru.mail.jira.plugins.myteam.protocol;
import com.atlassian.jira.user.ApplicationUser;
import org.jetbrains.annotations.Nullable;
import ru.mail.jira.plugins.myteam.bot.rulesengine.models.exceptions.LinkIssueWithChatException;
public interface MyteamService {
/**
* Send shielded message to user in VK Teams.
*
* @param user recipient of the message
* @param message sent message
* @return message sent or not
*/
boolean sendMessage(ApplicationUser user, String message);
/**
* Send raw message to user in Mail.Ru Agent.
*
* @param user recipient of the message
* @param message sent message
* @return message sent or not
*/
boolean sendRawMessage(ApplicationUser user, String message);
/**
* Send shielded message to user in VK Teams.
*
* @param groupName name of Jira group
* @param message sent message
*/
void sendMessageToUserGroup(String groupName, String message);
/**
* Send raw message to user in Mail.Ru Agent.
*
* @param groupName name of Jira group
* @param message sent message
*/
void sendRawMessageToUserGroup(String groupName, String message);
/**
* Send shielded message to recipient with id in VK Teams.
*
* @param chatId recipient of the message
* @param message sent message
*/
void sendMessage(String chatId, String message);
/**
* Send raw message to recipient with id in Mail.Ru Agent.
*
* @param chatId recipient of the message
* @param message sent message
*/
void sendRawMessage(String chatId, String message);
/**
* Find chat entity in database by issue key.
* If entity is null then issue with input key has not linked chat in VK Teams
* @param issueKey recipient of the message
*/
@Nullable
MyteamChatMetaDto findChatByIssueKey(@Nullable String issueKey);
/**
* Link issue with chat id from VK Teams
* @param chatId chat id from VK Team
* @param issueKey issue key of issue to link chat from VK Team
* @throws LinkIssueWithChatException if issue already linked with chat
*/
void linkChat(String chatId, String issueKey) throws LinkIssueWithChatException;
/**
* Create chat in VK Teams
* @param jiraUsers chat members (can only allowed to create chat with this user in list)
* @param chatName chat name
* @param isPublic flag to allow search chat in VK Teams
* @param loggedInUser jira user which start action
* @param issueKeyLinkToChat link issue with this key to created chat
* @return created chat metadata
*/
@Nullable
MyteamChatMetaDto createChatByJiraApplicationUsers(@Nullable List<ApplicationUser> jiraUsers,
@Nullable String chatName,
@Nullable String about,
@Nullable ApplicationUser loggedInUser,
boolean isPublic,
@Nullable String issueKeyLinkToChat);
/**
* Create chat in VK Teams
* @param jiraUserIds chat members id (can only allowed to create chat with this user in list)
* @param chatName chat name
* @param isPublic flag to allow search chat in VK Teams
* @param loggedInUser jira user which start action
* @param issueKeyLinkToChat link issue with this key to created chat
* @return created chat metadata
*/
@Nullable
MyteamChatMetaDto createChatByJiraUserIds(@Nullable List<Long> jiraUserIds,
@Nullable String chatName,
@Nullable String about,
@Nullable ApplicationUser loggedInUser,
boolean isPublic,
@Nullable String issueKeyLinkToChat);
}