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
- }
|