httplib_sms_service_gateway.go 1.6 KB
package svr

import (
	"gitlab.fjmaimaimai.com/mmm-go/partner/pkg/constant"
	"gitlab.fjmaimaimai.com/mmm-go/partner/pkg/log"
	"strings"
	"time"
)

type HttplibMmmSmsApiServiceGateway struct {
	httplibBaseServiceGateway
}

func (serviceGateway *HttplibMmmSmsApiServiceGateway) SendSms(phone string) (map[string]interface{}, error) {
	url := strings.Join([]string{serviceGateway.baseURL, "service", "sendSms"}, "/")
	request := serviceGateway.createRequest(url, "post")
	options := make(map[string]interface{})
	options["phone"] = strings.TrimSpace(phone)
	request.JSONBody(options)
	response := make(map[string]interface{})
	err := request.ToJSON(&response)
	if err != nil {
		log.Error("Service Gateway Fail:", err)
		return nil, err
	}
	data, err := serviceGateway.responseHandle(response)
	return data, err
}

func (serviceGateway *HttplibMmmSmsApiServiceGateway) CheckSmsCode(phone string, code string) (map[string]interface{}, error) {
	url := strings.Join([]string{serviceGateway.baseURL, "service", "checkSmsCode"}, "/")
	request := serviceGateway.createRequest(url, "post")
	options := make(map[string]interface{})
	options["phone"] = phone
	options["code"] = code
	request.JSONBody(options)
	response := make(map[string]interface{})
	request.ToJSON(&response)
	data, err := serviceGateway.responseHandle(response)
	return data, err
}

func NewHttplibMmmSmsApiServiceGateway() *HttplibMmmSmsApiServiceGateway {
	return &HttplibMmmSmsApiServiceGateway{
		httplibBaseServiceGateway: httplibBaseServiceGateway{
			baseURL:          constant.MMM_SMS_SERVICE_HOST,
			connectTimeout:   100 * time.Second,
			readWriteTimeout: 30 * time.Second,
		},
	}
}