| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 | 
							- package action
 
- import (
 
- 	"errors"
 
- 	amiModel "pbx-api-gin/internal/app/ami/model"
 
- 	"pbx-api-gin/pkg/lfshook"
 
- 	"github.com/mitchellh/mapstructure"
 
- )
 
- func Park(extension, lot string) (err error) {
 
- 	channel, err := GetChannelByExten(extension)
 
- 	if err != nil {
 
- 		return err
 
- 	}
 
- 	action := map[string]string{
 
- 		"Action":  "Park",
 
- 		"Channel": channel,
 
- 	}
 
- 	if lot != "" {
 
- 		action["Parkinglot"] = lot
 
- 	}
 
- 	res, events, err := AminInstance.Send(action)
 
- 	if err != nil {
 
- 		return err
 
- 	}
 
- 	lfshook.NewLogger().Infof("Park %+v %+v", res, events)
 
- 	if res["Response"] != "Success" {
 
- 		return errors.New(res["Message"])
 
- 	}
 
- 	return nil
 
- }
 
- func ParkedCalls(lot string) (result []*amiModel.ParkedCall, err error) {
 
- 	action := map[string]string{
 
- 		"Action":     "ParkedCalls",
 
- 		"Parkinglot": lot,
 
- 	}
 
- 	res, events, err := AminInstance.Send(action)
 
- 	if err != nil {
 
- 		return nil, err
 
- 	}
 
- 	if res["Response"] != "Success" {
 
- 		return result, errors.New(res["Message"])
 
- 	}
 
- 	result = make([]*amiModel.ParkedCall, 0)
 
- 	for _, event := range events {
 
- 		if event.Data["Event"] == "ParkedCall" {
 
- 			call := &amiModel.ParkedCall{}
 
- 			mapstructure.Decode(event.Data, call)
 
- 			result = append(result, call)
 
- 		}
 
- 	}
 
- 	return result, nil
 
- }
 
- func Parkinglots() (result []*amiModel.Parkinglot, err error) {
 
- 	action := map[string]string{
 
- 		"Action": "Parkinglots",
 
- 	}
 
- 	res, events, err := AminInstance.Send(action)
 
- 	if err != nil {
 
- 		return nil, err
 
- 	}
 
- 	if res["Response"] != "Success" {
 
- 		return nil, errors.New(res["Message"])
 
- 	}
 
- 	result = make([]*amiModel.Parkinglot, 0)
 
- 	for _, event := range events {
 
- 		if event.Data["Event"] == "Parkinglot" {
 
- 			lot := &amiModel.Parkinglot{}
 
- 			mapstructure.Decode(event.Data, lot)
 
- 			result = append(result, lot)
 
- 		}
 
- 	}
 
- 	return result, nil
 
- }
 
 
  |