123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- package asterisk
- import (
- "net/http"
- "pbx-api-gin/api/model"
- "pbx-api-gin/internal/app/ami/action"
- "pbx-api-gin/pkg/lfshook"
- "github.com/gin-gonic/gin"
- )
- // @tags Asterisk-Park
- // @Summary 停泊分机
- // @Description 停泊分机
- // @Security ApiKeyAuth
- // @Accept json
- // @Produce json
- // @Param data body model.ParkInfoVO true "更新信息"
- // @Success 200 {object} model.APIOK "请求成功"
- // @Router /ginapi/plugin-asterisk/park/park [post]
- func park(ctx *gin.Context) {
- var data model.ParkInfoVO
- if err := ctx.ShouldBindJSON(&data); err != nil {
- ctx.JSON(http.StatusBadRequest, model.APIError{ErrorMessage: err.Error()})
- return
- }
- lfshook.NewLogger().Infof("park %+v", data)
- if err := action.Park(data.Extension, data.Parkinglot); err != nil {
- ctx.JSON(http.StatusInternalServerError, model.APIError{ErrorMessage: err.Error()})
- return
- }
- ctx.JSON(http.StatusOK, model.APIOK{Message: "ok", Data: data})
- }
- // @tags Asterisk-Park
- // @Summary 停泊接回
- // @Description 停泊接回
- // @Security ApiKeyAuth
- // @Accept json
- // @Produce json
- // @Param data body model.ParkBackVO true "更新信息"
- // @Success 200 {object} model.APIOK "请求成功"
- // @Router /ginapi/plugin-asterisk/park/back [post]
- func parkBack(ctx *gin.Context) {
- var info model.ParkBackVO
- if err := ctx.ShouldBindJSON(&info); err != nil {
- ctx.JSON(http.StatusBadRequest, model.APIError{ErrorMessage: err.Error()})
- return
- }
- lfshook.NewLogger().Infof("park back %+v", info)
- // 根据参数确定主叫, 再考虑用户登录的分机信息
- myExtension := info.CallerNumber
- if myExtension == "" {
- //ID, _ := ctx.Get("ID")
- myExtension = "=============="
- if myExtension == "" {
- ctx.JSON(http.StatusBadRequest, model.APIError{ErrorMessage: "not found extension"})
- return
- }
- }
- dialplan := "default"
- if info.CallerID == "" {
- info.CallerID = info.Extension
- }
- action.Dial(myExtension, info.Extension, dialplan, info.CallerID, "=================", "Local")
- ctx.JSON(http.StatusOK, model.APIOK{Message: "ok", Data: info})
- }
- // @tags Asterisk-Park
- // @Summary 获取停泊信息
- // @Description 获取停泊信息
- // @Security ApiKeyAuth
- // @Accept json
- // @Produce json
- // @Param data body model.ParkCommonVO true "更新信息"
- // @Success 200 {object} model.APIOK "请求成功"
- // @Router /ginapi/plugin-asterisk/park/calls [post]
- func parkedCalls(ctx *gin.Context) {
- var data model.ParkCommonVO
- if err := ctx.ShouldBindJSON(&data); err != nil {
- ctx.JSON(http.StatusBadRequest, model.APIError{ErrorMessage: err.Error()})
- return
- }
- res, err := action.ParkedCalls(data.Parkinglot)
- if err != nil {
- ctx.JSON(http.StatusInternalServerError, model.APIError{ErrorMessage: err.Error()})
- return
- }
- ctx.JSON(http.StatusOK, model.APIOK{Message: "ok", Data: res})
- }
- // @tags Asterisk-Park
- // @Summary 获取停泊池信息
- // @Description 获取停泊池信息
- // @Security ApiKeyAuth
- // @Accept json
- // @Produce json
- // @Success 200 {object} model.APIOK "请求成功"
- // @Router /ginapi/plugin-asterisk/park/lots [get]
- func parkinglots(ctx *gin.Context) {
- data, err := action.Parkinglots()
- if err != nil {
- ctx.JSON(http.StatusInternalServerError, model.APIError{ErrorMessage: err.Error()})
- return
- }
- ctx.JSON(http.StatusOK, model.APIOK{Message: "ok", Data: data})
- }
|