12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- package action
- import (
- "errors"
- "pbx-api-gin/internal/app/ami"
- 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 := ami.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 := ami.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 := ami.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
- }
|