Commit b1bd0de1 authored by 李宇怀's avatar 李宇怀
Browse files

完成taskA与B

parent dc8b36de
// route/link.go​
package dto
import "gopkg.in/guregu/null.v4"
......@@ -20,3 +19,54 @@ type LinkCreateResp struct {
Short string `json:"short"` // 短链ID,全局唯一​
StartTime null.Time `json:"start_time"` // 起始时间,UTC​
}
// >>>>>>>>>> LinkDelete >>>>>>>>>>​
type LinkDeleteReq struct { //Query Params
Short string `json:"short"` // 短链接的唯一 ID
}
// 获取短链接信息
type GetLinkInfoReq struct { //Query Params
Short string `json:"short"` // 短链接的唯一 ID
}
type GetLinkInfoResp struct { //Responses
Active bool `json:"active"` // 服务状态
Comment string `json:"comment"` // 备注信息
EndTime null.Time `json:"end_time"` // 到期时间,UTC
Origin string `json:"origin"` // 原始链接
Short string `json:"short"` // 短链ID,全局唯一
StartTime null.Time `json:"start_time"` // 起始时间,UTC
}
// 更新短链接信息
type LinkUpdateReq struct { //Body Params
Active bool `json:"active"` // 服务状态
Comment string `json:"comment"` // 备注信息
EndTime null.Time `json:"end_time"` // 到期时间,UTC
Origin string `json:"origin"` // 原始链接
Short string `json:"short"` // 短链ID,全局唯一
StartTime null.Time `json:"start_time"` // 起始时间,UTC
}
// 获取短链接列表
type GetLinkListReq struct { //Query & Header Params
PageNumber int64 `json:"page_number"` // 请求页码
PageSize int64 `json:"page_size"` // 每页 item 数,-1 时代表全部返回
AccessToken *string `json:"access_token,omitempty"`
}
type GetLinkListResp struct {
Links []ShortLinkModel `json:"links"`
Total int64 `json:"total"` // 总 item 数量
}
// Link
type ShortLinkModel struct {
Active bool `json:"active"` // 服务状态
Comment string `json:"comment"` // 备注信息
EndTime null.Time `json:"end_time"` // 到期时间,UTC
Origin string `json:"origin"` // 原始链接
Short string `json:"short"` // 短链ID,全局唯一
StartTime null.Time `json:"start_time"` // 起始时间,UTC
}
package dto
//短链接server
type ServerLinkReq struct {
Short string `json:"short"` // 短链接唯一 ID
}
type AServerLinkResp map[string]interface{}
//验证码图片server
type ServerVeriReq struct {
Target string `json:"target"` // 验证码对应的图片资源
}
package dto
//用户注册
type UserRegisterReq struct { //Body Params
Email string `json:"email"` // 用户邮箱
Name string `json:"name"` // 用户名
Password string `json:"password"` // 用户密码
}
//获取登录验证码
type GetVeriResp struct { //Responses
CAPTCHAID string `json:"captcha_id"` // 验证码 ID
CAPTCHAURL string `json:"captcha_url"` // 验证码图片地址
}
//用户登录
type UserLoginReq struct { //Body Params
CAPTCHAID string `json:"captcha_id"`
CAPTCHAValue string `json:"captcha_value"`
Email string `json:"email"` // 用户邮箱
Password string `json:"password"` // 用户密码
}
//获取用户信息
type GetUserInfoResp struct { //Responses
Email string `json:"email"` // 用户邮箱
ID uint `json:"id"` // 用户ID
Name string `json:"name"` // 用户名
}
//修改用户信息
type UserModifyInfoReq struct { //Body Params
Email string `json:"email"` // 用户邮箱
ID uint `json:"id"` // 用户ID
Name string `json:"name"` // 用户名
}
//修改密码
type UserModifyPwdReq struct { //Body Params
NewPwd string `json:"new_pwd"` // 新密码
OldPwd string `json:"old_pwd"` // 旧密码
}
package route
import (
"go-svc-tpl/internal/controller"
)
type LinkCtlWrapper struct {
ctl controller.ILinkController
}
package route
import (
"go-svc-tpl/internal/controller"
)
type ServerCtlWrapper struct { //Wrapper类隔离接口具体逻辑
ctl controller.IServerController
}
package route
import (
"go-svc-tpl/internal/controller"
)
type UserCtlWrapper struct { //Wrapper类隔离接口具体逻辑
ctl controller.IUserController
}
package controller
import (
"go-svc-tpl/api/dto"
"github.com/gin-gonic/gin"
)
// >>>>>>>>>>>>>>>>>> Interface >>>>>>>>>>>>>>>>>>
type ILinkController interface { //定义tag link 下的操作
Create(*gin.Context, *dto.LinkCreateReq) (*dto.LinkCreateResp, error)
Delete(*gin.Context, *dto.LinkDeleteReq) error
GetInfo(*gin.Context, *dto.GetLinkInfoReq) (*dto.GetLinkInfoResp, error)
Update(*gin.Context, *dto.LinkUpdateReq) error
GetList(*gin.Context, *dto.GetLinkListReq) (*dto.GetLinkListResp, error)
}
package controller
import (
"go-svc-tpl/api/dto"
"github.com/gin-gonic/gin"
)
// >>>>>>>>>>>>>>>>>> Interface >>>>>>>>>>>>>>>>>>
type IServerController interface {
Link(*gin.Context, *dto.ServerLinkReq) error
Veri(*gin.Context, *dto.ServerVeriReq) error
}
package controller
import (
"go-svc-tpl/api/dto"
"github.com/gin-gonic/gin"
)
// >>>>>>>>>>>>>>>>>> Interface >>>>>>>>>>>>>>>>>>
type IUserController interface { //定义tag user 下的操作
Register(*gin.Context, *dto.UserRegisterReq) error
GetVeri(*gin.Context) (*dto.GetVeriResp, error)
Login(*gin.Context, *dto.UserLoginReq) error
GetInfo(*gin.Context) (*dto.GetUserInfoResp, error)
ModifyInfo(*gin.Context, *dto.UserModifyInfoReq) error
ModifyPwd(*gin.Context, *dto.UserModifyPwdReq) error
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment