package controller
import (
"email-service/model"
"email-service/service"
"encoding/json"
"fmt"
"github.com/gin-gonic/gin"
"log"
"net/http"
)
func Ping(ctx *gin.Context) {
log.Printf("参数:%v", ctx.Params)
//ctx.JSON(http.StatusOK, gin.H{
// "message": "pong",
//})
ctx.String(200, "message:%v", "pong")
}
// 健康检查
func Health(ctx *gin.Context) {
ctx.JSON(http.StatusOK, gin.H{
"status": "UP",
})
}
// 发送邮件
func EmailHandler(ctx *gin.Context) {
req := &model.EmailReq{}
if err := ctx.BindJSON(req); err != nil {
log.Printf("参数错误, req: %v", req)
ctx.JSON(400, model.Result{
Code: 400,
Message: "参数错误",
})
return
}
log.Printf("req:%v\n", req)
err := service.SendEmail(req.ToUser, req.UserName)
if err != nil {
log.Printf("SendEmail fail, err=%v", err)
ctx.JSON(500, model.Result{
Code: 500,
Message: "服务器内部错误",
})
return
}
ctx.JSON(200, model.Result{
Code: 200,
Message: "邮件发送成功",
})
}
func UserHandler(ctx *gin.Context) {
instance := ctx.Param("instance")
id := ctx.Param("id")
if id == "" {
ctx.JSON(http.StatusBadRequest, gin.H{
"msg": "参数错误",
})
return
}
client := http.DefaultClient
url := fmt.Sprintf("http://127.0.0.1:6666/microservice-user/%s?id=%s", instance, id)
request, err := http.NewRequest(http.MethodGet, url, nil)
if request == nil || err != nil {
log.Printf("new request fail, err:%v", err)
ctx.JSON(http.StatusInternalServerError, gin.H{
"msg": "服务器内部错误",
})
return
}
authorization := ctx.GetHeader("Authorization")
log.Printf("Authorization:%v", authorization)
request.Header.Add("Authorization", authorization)
resp, err := client.Do(request)
if err != nil {
log.Printf("err: %v, resp: %v\n", err, resp)
ctx.JSON(http.StatusInternalServerError, gin.H{
"msg": "服务器内部错误",
})
return
}
log.Printf("resp:%v\n\n", resp)
var result = model.Result{}
if 200 == resp.StatusCode {
err = json.NewDecoder(resp.Body).Decode(&result)
if err != nil {
log.Printf("Unmarshal err: %v\n", err)
ctx.JSON(http.StatusInternalServerError, gin.H{
"msg": "服务器内部错误",
})
return
}
}
ctx.JSON(http.StatusOK, result)
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
毕业设计go语言邮件系统.zip (16个子文件)
microservice-email-master
go.mod 942B
go.sum 14KB
controller
email_test.go 837B
email.go 2KB
dao
init.go 413B
eamil_test.go 178B
email.go 785B
templates
email.html 49KB
.idea
microservice-email.iml 322B
vcs.xml 180B
workspace.xml 8KB
modules.xml 288B
middleware
request.go 2KB
service
emailService.go 2KB
model
Result.go 474B
main.go 407B
共 16 条
- 1
资源评论
马coder
- 粉丝: 1206
- 资源: 6602
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 88-520告白(520气球).zip
- HTML+CSS+JS精品网页模板H126.rar
- n.cpp
- jdk-8u411-windows-x64下载安装可用
- vgg模型-图像分类算法对水果识别-不含数据集图片-含逐行注释和说明文档.zip
- KMP算法(Knuth-Morris-Pratt算法
- vgg模型-python语言pytorch框架训练识别化妆品分类-不含数据集图片-含逐行注释和说明文档.zip
- KMP算法(Knuth-Morris-Pratt算法
- shufflenet模型-基于人工智能的卷积网络训练识别狗的表情-不含数据集图片-含逐行注释和说明文档.zip
- EPIC Fantasy Town 1.0
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功