Skip to content

Commit

Permalink
refactor:robot client
Browse files Browse the repository at this point in the history
  • Loading branch information
hb0730 committed Aug 14, 2022
1 parent 9e45786 commit d2a9720
Show file tree
Hide file tree
Showing 4 changed files with 98 additions and 36 deletions.
43 changes: 43 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Compiled class file
*.class

# Log file
*.log

# BlueJ files
*.ctxt

# Mobile Tools for Java (J2ME)
.mtj.tmp/

# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

### Maven template
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
.mvn/wrapper/maven-wrapper.jar

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

# idea
.idea
*.iml
out
gen
# IntelliJ
out/
6 changes: 3 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,12 @@
<dependency>
<groupId>com.hb0730</groupId>
<artifactId>https</artifactId>
<version>4.0.1</version>
<version>4.0.2</version>
</dependency>
<dependency>
<groupId>com.hb0730</groupId>
<artifactId>jsons</artifactId>
<version>1.0.0</version>
<version>1.0.3</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
Expand All @@ -64,7 +64,7 @@
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-core</artifactId>
<version>5.8.2</version>
<version>5.8.5</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,14 @@
import com.hb0730.jsons.SimpleJsonProxy;
import io.github.group.robot.weixin.exception.WeixiuRobotException;
import io.github.group.robot.weixin.model.Message;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;

import java.util.Map;

/**
* request send service
*
Expand All @@ -20,60 +24,75 @@
* @since 1.0.0
*/
@Slf4j
public class RobotSend {
@AllArgsConstructor
@NoArgsConstructor
public class WeixinRobotClient {
/**
* WeChat group robot webhook url
*/
@Getter
@Setter
private String webhook;

public RobotSend() {
}

public RobotSend(String webhook) {
if (StrUtil.isBlank(webhook)) {
throw new WeixiuRobotException("webhook missing");
}
this.webhook = webhook;
/**
* send message
*
* @param message message
* @return result
*/
public RobotResult sendMessage(Message message) {
return sendMessage(this.webhook, message);
}

/**
* send request
* send message
*
* @param message robot message
* @return send response
* @param url webhook
* @param message message
* @return result
*/
public RobotResult send(Message message) {
public RobotResult sendMessage(String url, Message message) {
if (null == message) {
throw new WeixiuRobotException("message missing");
}
String jsonStr = SimpleJsonProxy.json.toJson(message.toMessageMap());
return send(jsonStr);
Map<String, Object> map = message.toMessageMap();
return sendMessage(url, SimpleJsonProxy.json.toJson(map));
}

/**
* send request
* send message
*
* @param message message json
* @return send response
* @param json message json
* @return result
*/
public RobotResult send(String message) {
if (StrUtil.isBlank(this.webhook)) {
public RobotResult sendMessage(String json) {
return sendMessage(this.webhook, json);
}

/**
* send message
*
* @param url webhook
* @param json message json
* @return result
*/
public RobotResult sendMessage(String url, String json) {
if (StrUtil.isBlank(url)) {
throw new WeixiuRobotException("url missing");
}
if (StrUtil.isBlank(message)) {
if (StrUtil.isBlank(json)) {
throw new WeixiuRobotException("message missing");
}
SimpleHttpResponse response = SimpleHttp.HTTP.post(webhook, message,
SimpleHttpResponse response = SimpleHttp.HTTP.post(webhook, json,
HttpHeader.builder().add(Constants.CONTENT_TYPE,
Constants.CONTENT_TYPE_JSON_UTF_8));
if (log.isDebugEnabled()) {
log.info("request body:{}", message);
log.info("request body:{}", json);
log.info("response status: {},body:{}", response.isSuccess(), response.isSuccess() ? response.getBodyStr() :
"");
}
return RobotResult.toObject(response.getBodyStr());
}


}
20 changes: 10 additions & 10 deletions src/test/java/io/github/group/robot/weixin/RobotSendTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,13 +29,13 @@

@Slf4j
class RobotSendTest {
RobotSend send = new RobotSend();
WeixinRobotClient send = new WeixinRobotClient();

@Test
void send() {
String webhook = System.getenv("webhook");
send.setWebhook(webhook);
RobotResult result = send.send(TextMessage.TextMessageBuilder.builder().setContent("Hi,我是机器人测试\n" +
RobotResult result = send.sendMessage(TextMessage.TextMessageBuilder.builder().setContent("Hi,我是机器人测试\n" +
"由XX于06月17日添加到群").build());
log.info(result.toString());
}
Expand All @@ -44,7 +44,7 @@ void send() {
void sendTextMessageTest() {
String webhook = System.getenv("webhook");
send.setWebhook(webhook);
RobotResult result = send.send(TextMessage.TextMessageBuilder.builder().setContent("Hi,我是机器人测试\n" +
RobotResult result = send.sendMessage(TextMessage.TextMessageBuilder.builder().setContent("Hi,我是机器人测试\n" +
"由XX于06月17日添加到群").build());
log.info(result.toString());
}
Expand All @@ -53,7 +53,7 @@ void sendTextMessageTest() {
void sendTextMessageATAllTest() {
String webhook = System.getenv("webhook");
send.setWebhook(webhook);
RobotResult result = send.send(TextMessage.TextMessageBuilder.builder().setContent("Hi,我是机器人测试\n" +
RobotResult result = send.sendMessage(TextMessage.TextMessageBuilder.builder().setContent("Hi,我是机器人测试\n" +
"由XX于06月17日添加到群").mobileAtAll().build());
log.info(result.toString());
}
Expand All @@ -62,7 +62,7 @@ void sendTextMessageATAllTest() {
void sendMarkdownMessageTest() {
String webhook = System.getenv("webhook");
send.setWebhook(webhook);
RobotResult result = send.send(
RobotResult result = send.sendMessage(
MarkdownMessage.MarkdownMessageBuilder
.builder()
.content("实时新增用户反馈<font color=\"warning\">132例</font>,请相关同事注意。\n"
Expand All @@ -78,7 +78,7 @@ void sendMarkdownMessageTest() {
void sendMarkdownMessageAtAllTest() {
String webhook = System.getenv("webhook");
send.setWebhook(webhook);
RobotResult result = send.send(
RobotResult result = send.sendMessage(
MarkdownMessage.MarkdownMessageBuilder
.builder()
.content("实时新增用户反馈<font color=\"warning\">132例</font>,请相关同事注意。\n"
Expand All @@ -95,7 +95,7 @@ void sendMarkdownMessageAtAllTest() {
void imageMessageTest() {
String webhook = System.getenv("webhook");
send.setWebhook(webhook);
RobotResult result = send.send(
RobotResult result = send.sendMessage(
ImageMessage.ImageMessageBuilder.builder()
.md5("")
.base64("")
Expand All @@ -108,7 +108,7 @@ void imageMessageTest() {
void newsMessageTest() {
String webhook = System.getenv("webhook");
send.setWebhook(webhook);
RobotResult result = send.send(
RobotResult result = send.sendMessage(
NewsMessage.NewsMessageBuilder.builder()
.addArticle(
Article
Expand All @@ -127,7 +127,7 @@ void newsMessageTest() {
void textNoticeCardMessageTest() {
String webhook = System.getenv("webhook");
send.setWebhook(webhook);
RobotResult result = send.send(
RobotResult result = send.sendMessage(
TemplateCardMessage.TemplateCardMessageBuilder.builder()
.templateCard(
TextNoticeCard.TextNoticeCardBuilder.builder()
Expand Down Expand Up @@ -212,7 +212,7 @@ void textNoticeCardMessageTest() {
void NewsNoticeCardMessageTest() {
String webhook = System.getenv("webhook");
send.setWebhook(webhook);
RobotResult result = send.send(
RobotResult result = send.sendMessage(
TemplateCardMessage.TemplateCardMessageBuilder.builder()
.templateCard(
NewsNoticeCard.NewsNoticeCardBuilder.builder()
Expand Down

0 comments on commit d2a9720

Please sign in to comment.