movizor

package module
v0.1.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 2, 2019 License: MIT Imports: 13 Imported by: 0

README

movizor Build Status GoDoc Code Climate codecov Go Report Card 

This is Golang package for MoVizor.ru API - monitoring service in Russia.

MoVizor.ru - это агрегатор услуг GSM позиционирования сотовых операторов России: БиЛайн, МТС, Мегафон, Теле2. Так как данный сервис чисто российский - вся документация для этого пакета будет на русском.

Данный пакет является оберткой для API Мовизора.

Для работы с API Мовизора необходимо получить токен доступа (ключ) в разделе Настройки/Настройки API.

Documentation

Overview

Package movizor package provides access to http://MoVizor.ru API which provides access for GSM geo-position services of russian telecommunications operators. Beeline, MTS, Megafon, Tele2.

As soon as MoVizor provides service only in Russia all documentation will be in russian.

Index

Constants

View Source
const (
	// DefaultAPIMovizorEndpoint is default API Movizor endpoint
	DefaultAPIMovizorEndpoint = "https://movizor.ru/api"
	// APIMovizorEndpointSuffix is API Movizor endpoint suffix to pass method and parameters
	// /%s/%s = /project/action
	APIMovizorEndpointSuffix = "/%s/%s"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type API

type API struct {
	Endpoint string
	Project  string
	Token    string
	Client   *http.Client
	IsDebug  bool
	Retries  uint
}

API - это клиент к API Мовизора. Сервиса определения гео-координат на основе GSM сервиса.

func NewMovizorAPI

func NewMovizorAPI(prj string, token string) (*API, error)

NewMovizorAPI создает экземпляр Movizor API для стандартного адреса сервера.

func NewMovizorAPIWithEndpoint

func NewMovizorAPIWithEndpoint(endp string, prj string, token string) (*API, error)

NewMovizorAPIWithEndpoint создает экземпляр Movizor API. Может быть указан нестандартный адрес сервиса МоВизора на случай, если такой появится.

func (*API) AddEventSubscription added in v0.1.4

func (api *API) AddEventSubscription(o SubscribeEventOptions) error

AddSubscription добавляет подписку на событие по телефону в существующую подписку подписчика, если таковой будет найден. Если такой подписчик не будет найден, то создастся новая подписка.

func (*API) AddObject

func (api *API) AddObject(o Object, oo *ObjectOptions) (APIResponse, error)

AddObject подключает абонента к мониторингу.

func (*API) AddObjectToSlave

func (api *API) AddObjectToSlave(o Object, oo *ObjectOptions, slaveID uint64) (APIResponse, error)

AddObjectToSlave подключает абонента к мониторингу в подчиненный кабинет по ID этого кабинета. ID кабинета тоже самое, что и "Номер клиента" указанные в правом верхнем углу кабинета клиента.

func (*API) CancelTariffChangeObject

func (api *API) CancelTariffChangeObject(o Object) (APIResponse, error)

CancelTariffChangeObject отменяет переход на новый тариф со следующего дня. Если с помощтю EditObject и без автоматической активации меняется тариф, то эту смену можно отменить.

func (*API) ClearAllEventSubscriptions

func (api *API) ClearAllEventSubscriptions() error

ClearAllEventSubscriptions удаляет все подписки в аккаунте.

func (*API) ClearObjectEventSubscriptions

func (api *API) ClearObjectEventSubscriptions(o Object, eType *EventType) error

ClearObjectEventSubscriptions производит отписку от конкретного события для определенного телефона. Если существует подписка на все телефоны на какое-то событие, то она не будет затронута. Т.е. удаляются только подписки с явным указанием номера телефона.

func (*API) ClearUnusedSubscriptions

func (api *API) ClearUnusedSubscriptions() error

ClearUnusedSubscriptions удаляет все не используемые подписки. То есть, если конретного объекта нет в списке трекинга (в любом статусе), то подписка на события по этому объекуту удаляется. Удаление касается всех подписок для конкретных телефонов. Общие подписки для всех телефонов не затраниваются.

func (*API) DeleteEventsSubscription

func (api *API) DeleteEventsSubscription(id int64) (APIResponse, error)

DeleteEventsSubscription удаляет подписку по ее id. Для получения id используйте GetEventSubscriptions.

func (*API) DeleteObject

func (api *API) DeleteObject(o Object) (APIResponse, error)

DeleteObject отключает и удаляет абонента из системы мониторинга.

func (*API) EditObject

func (api *API) EditObject(o Object, oo *ObjectOptions) (APIResponse, error)

EditObject производит изменение опций мониторинга ранее добавленного абонента.

func (*API) EditObjectWithActivate

func (api *API) EditObjectWithActivate(o Object, oo *ObjectOptions, activate bool) (APIResponse, error)

EditObjectWithActivate проивзодит изменение опций мониторинга ранее добавленного абонента с опцией немедленной активации или на следующие сутки.

api.EditObjectWithActivate(object, options, true) // немедленная активация
api.EditObjectWithActivate(object, options, false) // активация на следующие сутки

func (*API) GeoCode added in v0.1.4

func (api *API) GeoCode(addr string) (GeoPoints, error)

GeoCode выполняет геокодинг указанной строки. Метод возвращает набор подходящий точек с их точными найденными адресами.

func (*API) GetBalance

func (api *API) GetBalance() (Balance, error)

GetBalance возвращает текущее состояние баланса и установленные тарифы для всех видов мониторинга.

func (*API) GetEventSubscriptions

func (api *API) GetEventSubscriptions() (SubscribedEvents, error)

GetEventSubscriptions получает список подписок активных на текущий момент.

func (*API) GetEvents

func (api *API) GetEvents(o ObjectEventsOptions) (ObjectEvents, error)

GetEvents получает список событий, с возможностью определить с какого id события выводить данные.

func (*API) GetFilteredObjects added in v0.1.4

func (api *API) GetFilteredObjects(filter func(ObjectStatus) bool) (ObjectsWithStatus, error)

GetFilteredObjects возвращает список объектов отфильтрованных переданным параметром-функцией

func (*API) GetObjectInfo

func (api *API) GetObjectInfo(o Object) (ObjectInfo, error)

GetObjectInfo возвращает информацию о ранее добавленном абоненте с наиболее полной информацией, включая все опции, с которыми добавлялся объект.

func (*API) GetObjectLastPosition

func (api *API) GetObjectLastPosition(o Object) (Position, error)

GetObjectLastPosition возвращает информацию о последнем зафиксированном в системе местоположении.

func (*API) GetObjectPositions

func (api *API) GetObjectPositions(o Object, rpo *RequestPositionsOptions) (Positions, error)

GetObjectPositions возвращает информацию о всех координатах абонента. По умолчанию выдаются последние 1000 записей.

func (*API) GetObjects

func (api *API) GetObjects() (ObjectsWithStatus, error)

GetObjects возвращает список абонентов, добавленных в мониторинг с их статусом и текущим местоположением.

func (*API) GetObjectsPositions

func (api *API) GetObjectsPositions() (ObjectPositions, error)

GetObjectsPositions возвращает список объектов с их местоположением и ETA (estimated time of arrival)

func (*API) GetOperatorInfo

func (api *API) GetOperatorInfo(o Object) (OperatorInfo, error)

GetOperatorInfo возвращает информацию по оператору объекта трекинга (номеру телефона)

func (*API) GetRequestedPosition

func (api *API) GetRequestedPosition(pr PositionRequest) (Position, error)

GetRequestedPosition получает информацию о сделанном запросе на определение местоположения по его идентификатору, который получен методом RequestPosition.

func (*API) MakeRequest

func (api *API) MakeRequest(action string, params url.Values) (APIResponse, error)

MakeRequest делает запрос в Movizor API с указанным действием и параметрами. Все методы API вызывают MakeRequest.

func (*API) ReactivateObject

func (api *API) ReactivateObject(o Object) (APIResponse, error)

ReactivateObject производит повторное подключение к системе абонента, если сработало автоматическое отключение. Невозможно повторно подключить ранее удаленный объект мониторинга.

func (*API) RequestPosition

func (api *API) RequestPosition(o Object) (PositionRequest, error)

RequestPosition выполняет запрос на определение местоположения. Используется для определения координат вручную (TariffManual). Однако можно использовать и с другими тарифами. RequestPosition возвращает ID запроса, который передается в GetRequestedPosition для получения координат объекта.

func (*API) SubscribeEvent

func (api *API) SubscribeEvent(o SubscribeEventOptions) (APIResponse, error)

SubscribeEvent выполняет подписку на указанное тип события для всех объектов (телефонов) или по списку.

func (*API) UnsubscribeObject

func (api *API) UnsubscribeObject(o Object) error

UnsubscribeObject производит отписку от всех событий для определенного телефона. Если существует подписка на все телефоны на какое-то событие, то она не будет затронута. Т.е. удаляются только подписки с явным указанием номера телефона.

type APIResponse

type APIResponse struct {
	Result      string          `json:"result"`                  // "success" or "error" expected
	ResultCode  string          `json:"code"`                    // "OK" expected
	Message     string          `json:"message"`                 // "Balance info", ...
	Data        json.RawMessage `json:"data,omitempty"`          // optional Payload of response
	ErrorCode   string          `json:"error_code,omitempty"`    // Код ошибка
	ErrorText   string          `json:"error_text,omitempty"`    // Текст ошибки
	ErrorTextRU string          `json:"error_text_ru,omitempty"` // optional Текст ошибки на русском
}

APIResponse представляет собой ответ от сервиса с описанием типа сообщения и сегмента с данными.

type Balance

type Balance struct {
	Balance         float64 `json:"balance,string"` // Текущий остаток средств на балансе
	Credit          float64 `json:"credit,string"`  // Сумма кредитных средств на балансе
	ContractType    string  `json:"type"`           // Тип договора
	OperatorTariffs map[Operator]map[TariffType]Tariff
	ServiceTariffs  map[Service][]Tariff
}

Balance содержит текущий баланс по договору и список подключенных тарифов по мобильным операторам.

func (*Balance) UnmarshalJSON

func (b *Balance) UnmarshalJSON(data []byte) (err error)

type Coordinate

type Coordinate float32

Coordinate - гео-координата. ToDo: сделать проверку на допустимые значения и возможно заменить на float64

func (Coordinate) Float32

func (c Coordinate) Float32() float32

Float32 возвращает гео-координату в виде float32.

func (Coordinate) String

func (c Coordinate) String() string

String возвращает гео-координату в виде строки формата "%.8f"

func (*Coordinate) UnmarshalJSON

func (c *Coordinate) UnmarshalJSON(data []byte) (err error)

type Coordinates

type Coordinates struct {
	Lat Coordinate `json:"lat"` // Долгота
	Lon Coordinate `json:"lon"` // Широта
}

Coordinates представляет собой структуру гео-координат.

type CoordinatesAttributes

type CoordinatesAttributes struct {
	Distance *Int `json:"distance"`                         // Остаток в км до конечной точки
	ETA      *Int `json:"distance_forecast_time,omitempty"` // Прогноз оставшегося времени до конечной точки
	// Прогноз строится в зависимости от наличия информации о конечном пункте назначения и времени прибытия.
	// Если этой информации нет, значения элементов будут пустыми.
	ETAStatus *ETAStatus `json:"distance_forecast_status,omitempty"` // Прогноз успеваемости до конечной точки.
	// Прогноз строится в зависимости от наличия информации о конечном пункте назначения и времени прибытия.
	// Если этой информации нет, значения элементов будут пустыми.
	Place string `json:"place"` // Населенный пункт местоположения.
}

CoordinatesAttributes преставляет собой аттрибуты гео-координат. ETA, статус ETA, описание гео-координат (обратный гео-кодинг)

type CurrentCoordinates

type CurrentCoordinates struct {
	CurrentLon *Coordinate `json:"current_lon"` // Широта последнего местоположения
	CurrentLat *Coordinate `json:"current_lat"` // Долгота последнего местоположения
}

CurrentCoordinates представляют собой текущие гео-координаты объекта. Допускается null значения.

type Destination

type Destination struct {
	Text string `json:"text"`
	Coordinates
	Time   string    `json:"time"`
	Status ETAStatus `json:"status"`
}

Destination представляю собой структуру описания точки назначения, в которую следует объект.

type DestinationOptions

type DestinationOptions struct {
	Text         string
	Lon          float32
	Lat          float32
	ExpectedTime time.Time
}

DestinationOptions указывает точку следования объекта мониторинга. ToDo: заменить на Coordinates

type ETAStatus

type ETAStatus string

ETAStatus представляет собой возможный статус ETA объекта.

const (
	NewETAStatus      ETAStatus = "new"      // успевает
	OkETAStatus       ETAStatus = "ok"       // успевает
	LateETAStatus     ETAStatus = "late"     // опаздывает
	FinishedETAStatus ETAStatus = "finished" // прибыл
)

type EventType

type EventType string

EventType представляет собой возможный тип события, которые регистрируются в сервисе МоВизора. Не по всем типам событий можно производить подписку для нотификации.

const (
	AddEvent                    EventType = "add"             // - добавлен объект
	AutoOffEvent                EventType = "auto_off"        // - автоматическое отключение
	OffEvent                    EventType = "off"             // - отключение
	ConfirmEvent                EventType = "confirm"         // - объект подтвердил подключение
	RejectEvent                 EventType = "reject"          // - объект отказался от подключения
	RequestOkEvent              EventType = "request"         // - запрос: успешно
	RequestErrorEvent           EventType = "request_error"   // - запрос: ошибка
	RequestObjectOfflineEvent   EventType = "request_offline" // - запрос: телефон недоступен
	RequestObjectInRoamingEvent EventType = "request_roaming" // - запрос: телефон в роуминге
	ReactivateEvent             EventType = "reactivate"      // - повторное подключение
	ChangeTariffEvent           EventType = "tariff_auto"     // - смена тарифного плана
	InTimeEvent                 EventType = "pos_ok"          // - объект начал успевать
	LateEvent                   EventType = "pos_late"        // - объект начал опаздывать
	FinishedEvent               EventType = "pos_finished"    // - объект прибывает
	CallToDriverEvent           EventType = "autoinform"      // - автоинформатор
	NoConfirmationEvent         EventType = "no_confirm"      // - объект не подтвердил подключение
	ObjectLimitedEvent          EventType = "limit"           // - у объекта стоит ограничение
	OnRouteEvent                EventType = "onroute"         // - встал на маршрут
	ReturnRouteEvent            EventType = "returnroute"     // - вернулся на маршрут
	LeftRouteEvent              EventType = "leftroute"       // - отклонился от маршрута
	NotRouteEvent               EventType = "notroute"        // - не на маршруте
	OnParkingEvent              EventType = "onparking"       // - встал на парковку
	OffParkingEvent             EventType = "offparking"      // - начал движение
	MStopEvent                  EventType = "mstop"           // - приложение остановлено
	MStartEvent                 EventType = "mstart"          // - приложение запущено
)

type GeoPoint added in v0.1.4

type GeoPoint struct {
	Coordinates
	Description string `json:"title"`
}

GeoPoint указывает на точку геокодирования.

type GeoPoints added in v0.1.4

type GeoPoints []GeoPoint

GeoPoints содержит слайс точек геокодирования.

type Int

type Int int

Int - определение типа int для unmarshaling json с возможным значением json null.

func (Int) Int

func (i Int) Int() int

func (Int) String

func (i Int) String() string

func (*Int) UnmarshalJSON

func (i *Int) UnmarshalJSON(data []byte) error

type Object

type Object string

Object - это номер подключаемого абонента в формате MSISDN (например, 79210010203). Возможно так же передавать номер при добавлении в систему в следующих форматах:( +7 (921) 001-02-03; 8-921-001-02-03).

func (Object) String

func (o Object) String() string

Stringer returns clean format of cell number. Casting string(Object) gives Original value. fmt.Println(v), fmt.Printf("%s",Object), fmt.Printf("%v",Object) return clean format.

type ObjectEvent

type ObjectEvent struct {
	EventID   int64     `json:"id"`        // Идентификатор события (возрастающий номер события)
	Timestamp Time      `json:"timestamp"` // Время возникновения события
	Phone     Object    `json:"phone"`     // Номер телефона абонента, по которому произошло событие
	Event     EventType `json:"type"`      // Тип события
}

ObjectEvent содержит информацию о событиях, которые происходили с объектом. Такие как: подтверждение трекинга, отклонение трекига, отклонения от маршрута следования и т.д.

func (*ObjectEvent) UnmarshalJSON

func (oe *ObjectEvent) UnmarshalJSON(data []byte) (err error)

type ObjectEvents

type ObjectEvents []ObjectEvent

ObjectEvents является списком событий по объектам.

type ObjectEventsOptions

type ObjectEventsOptions struct {
	RequestLimit uint64
	AfterEventID uint64
}

ObjectEventsOptions предоставляет опции для получения списка событий через метод GetEvents.

type ObjectInfo

type ObjectInfo struct {
	Phone         Object      `json:"phone"`                // Номер абонента
	Status        Status      `json:"status"`               // status type
	Confirmed     bool        `json:"confirmed"`            // Получено подтверждение от абонента
	Title         string      `json:"title"`                // Имя абонента (название объекта)
	Tariff        TariffType  `json:"tariff"`               // Текущий тарифный план
	TariffNew     *TariffType `json:"tariff_new,omitempty"` // Новый тарифный план со следующего дня
	LastTimestamp Time        `json:"last_timestamp"`       // Время последнего запроса на определение местоположения
	AtRequest     bool        `json:"at_request,omitempty"` // Производится определение местоположения в данный момент
	CurrentCoordinates
	CoordinatesAttributes
	OnParking    *bool             `json:"on_parking,omitempty"`   // Находится ли объект на парковке
	Destination  []Destination     `json:"destination,omitempty"`  // Список точек назначения, которые должен посетить Водитель.
	OfflineTime  Time              `json:"offline_time,omitempty"` // Время последнего известного местоположения
	PosError     bool              `json:"pos_error,omitempty"`    // Последнее местоположение не удалось определить
	TimestampOff Time              `json:"timestamp_off"`          // Время автоматического отключения от мониторинга
	TimestampAdd Time              `json:"timestamp_add"`          // Время добавления объекта в Мовизор
	Metadata     map[string]string `json:"metadata,omitempty"`     // Метаинформация объекта, массив
}

ObjectInfo содержит почти полную информацию по объекту, включая опции, с которыми добавлялся объект.

func (*ObjectInfo) UnmarshalJSON

func (oi *ObjectInfo) UnmarshalJSON(data []byte) (err error)

type ObjectOptions

type ObjectOptions struct {
	Title          string               //title - Название объекта
	Tags           []string             //tags - Список меток через запятую
	DateOff        time.Time            //dateoff - Дата и время автоматического отключения абонента (dd.mm.yyyy hh:mm:ss)
	Tariff         TariffType           //tariff - Id-тарифного плана
	PackageProlong bool                 //package_prolong - Автоматически продлевать пакет (при использовании пакетного тарифа)
	Destinations   []DestinationOptions // destination[] - массив конечных точек маршрута.
	Schedules      *SchedulingOptions   // рассписание для ручного обновления координат
	Metadata       map[string]string    // metadata Массив с дополнительной информацией по объекту для отображения в событиях и отчетах.
	CallToDriver   bool                 // autoinform integer Включить услугу автоинформатора.
}

ObjectOptions предоставляет опции для AddObject (add_object) и EditObject (edit_object)

type ObjectPosition

type ObjectPosition struct {
	Phone Object `json:"phone"` // Номер телефона абонента
	Position
}

ObjectPosition представляет собой гео-координаты, последнее временя обновления координат, текущее местонахождение и ETA объекта.

type ObjectPositions

type ObjectPositions []ObjectPosition

ObjectPositions является списком объектов с гео-координатами, последним временем обновления координат, текущим местонахождением и ETA.

type ObjectStatus

type ObjectStatus struct {
	Phone  Object `json:"phone"`  // Номер телефона абонента
	Status Status `json:"status"` // Статус добавления для отслеживания
}

ObjectStatus представляет собой текущий статус объекта трекинга.

type ObjectsWithStatus

type ObjectsWithStatus []ObjectStatus

ObjectsWithStatus является списком объектов с их статусами.

func (ObjectsWithStatus) IsObjectIn

func (os ObjectsWithStatus) IsObjectIn(o Object) bool

IsObjectIn проверяет, есть ли соответствующий объект в списке.

func (ObjectsWithStatus) Len

func (os ObjectsWithStatus) Len() int

func (ObjectsWithStatus) Less

func (os ObjectsWithStatus) Less(i, j int) bool

func (ObjectsWithStatus) Swap

func (os ObjectsWithStatus) Swap(i, j int)

type Operator

type Operator string

Operator представляет собой Операторов мобильной связи.

const (
	// МТС
	OperatorMTS Operator = "mts"
	// Мегафон
	OperatorMegafon Operator = "megafon"
	// Билайн
	OperatorBeeline Operator = "beeline"
	// Теле2
	OperatorTele2 Operator = "tele2"
)

type OperatorInfo

type OperatorInfo struct {
	Operator Operator `json:"operator"`         // Внутренний идентификатор оператора
	Title    string   `json:"title"`            // Название оператора
	Region   string   `json:"region,omitempty"` // Домашний регион абонента
}

OperatorInfo содержит информацию о сотовом операторе.

type Position

type Position struct {
	Coordinates
	Timestamp        Time `json:"timestamp"`                   // Время получения координат для этой точки
	TimestampRequest Time `json:"timestamp_request,omitempty"` // Время создания запроса на получение координат
	Deviation        *Int `json:"radius,omitempty"`            // Радиус погрешности (м)
	CoordinatesAttributes
}

Position содержит информацию о последнем зафиксированном в системе местоположении.

type PositionRequest

type PositionRequest struct {
	RequestID int64 `json:"request_id"`
}

PositionRequest хранит ID запроса на опреления гео-координат.

type Positions

type Positions []Position

Positions является списком местоположений.

type RequestPositionsOptions

type RequestPositionsOptions struct {
	RequestLimit uint64    // req_limit - Разрешить делать не более X запросов в сутки на определение координат всех объектов
	Offset       uint64    // offset - Смещение количества получаемых координат
	TimeFrom     time.Time // date_start - Unix Timestamp. Фильтрация вывода, начиная с этой даты
	TimeTo       time.Time // date_end - Unix Timestamp. Фильтрация вывода, до этой даты
}

RequestPositionsOptions - представляет собой указание выборки списка координат методом GetObjectPositions.

type SchedulingOptions

type SchedulingOptions struct {
	FireAt []time.Time // st Массив времени в расписании. Передается в многомерном массиве,
	// contains filtered or unexported fields
}

SchedulingOptions является расписанием запросов на определение координат объекта.

func (*SchedulingOptions) IsWeekdayOn added in v0.1.4

func (s *SchedulingOptions) IsWeekdayOn(day Weekday) bool

IsWeekdayOn возвращает текущее состояние расписания запросов для указанного дня недели.

func (*SchedulingOptions) WeekdayOff added in v0.1.4

func (s *SchedulingOptions) WeekdayOff(day Weekday)

WeekdayOff исключает день недели из расписания запросов на определение координат объекта.

func (*SchedulingOptions) WeekdayOn added in v0.1.4

func (s *SchedulingOptions) WeekdayOn(day Weekday)

WeekdayOn добавляет день недели в расписание запросов на определение координат объекта.

type Service

type Service string

Service представляет собой тип доп сервиса МоВизора.

const (
	EventSmsService   Service = "eventsms"   // Подписка на SMS по событиям.
	AutoInformService Service = "autoinform" // Голосовое информирование на телефон подключаемого абонента.
)

type Status

type Status string

Status представляет собой возможный статус состояния объекта в системе МоВизор.

const (
	StatusNew                Status = "new"          // Новый
	StatusWaitOk             Status = "wait"         // Ожидание подтверждения
	StatusOk                 Status = "ok"           // Подтвержден и доступен для мониторинга
	StatusWaitOff            Status = "off_new"      // В процессе отключения от мониторинга
	StatusOff                Status = "off"          // Отключен от мониторинга
	StatusRejected           Status = "rejected"     // Абонент отказался от мониторинга
	StatusNotConfirmed       Status = "no_confirmed" // Абонент не подтвердил подключение
	StatusError              Status = "error"        // Оператор не поддерживается
	StatusOperatorNotAllowed Status = "wrong"        // Оператор не поддерживается
	StatusTrackCollision     Status = "error_exists" // Номер отслеживается другой компанией у оператора
	StatusTrackingIsOff      Status = "limited"      // У абонента ограничение на подключение к услуге
)

type SubscribeEventOptions

type SubscribeEventOptions struct {
	AllObjects bool
	Objects    []Object
	Event      EventType
	// contains filtered or unexported fields
}

SubscribeEventOptions предоставляет опции подписки на нотификацию по событиям. Если установлен признак AllObjects, то список Objects игнорируется.

func NewSubscribeEventOptions

func NewSubscribeEventOptions(o Object, e EventType) SubscribeEventOptions

NewSubscribeEventOptions возвращает экземпляр SubscribeEventOptions для указанного объекта и типа события.

func (*SubscribeEventOptions) IsSubscriberEqualTo added in v0.1.4

func (se *SubscribeEventOptions) IsSubscriberEqualTo(event SubscribedEvent) bool

IsSubscriberEqualTo проверяет, что у опций подписки на конкретное событие один и тот же подписчик

func (*SubscribeEventOptions) SetEMailNotification

func (se *SubscribeEventOptions) SetEMailNotification(mail string) error

SetEMailNotification устанавливает нотификацию на указанный почтовый адрес. Работает только та нотификация, которая была установлена последней в данной подписке. Это особенности API Movizor.

func (*SubscribeEventOptions) SetSMSNotification

func (se *SubscribeEventOptions) SetSMSNotification(phone Object) error

SetSMSNotification устанавливает нотификацию на указанный телефон по СМС. Работает только та нотификация, которая была установлена последней в данной подписке. Это особенности API Movizor.

func (*SubscribeEventOptions) SetTelegramNotification

func (se *SubscribeEventOptions) SetTelegramNotification()

SetTelegramNotification устанавливает нотификацию на Телеграм указанные в профиле держателя аккаута. Работает только та нотификация, которая была установлена последней в данной подписке. Это особенности API Movizor.

type SubscribedEvent

type SubscribedEvent struct {
	SubscriptionID         int64     `json:"id"`         // Идентификатор события (возрастающий номер события)
	IsAllObjectsSubscribed bool      `json:"phones_all"` // Уведомление о событии для всех объектов (в том числе добавляемых в будущем)
	ObjectsSubscribed      []Object  `json:"phones"`     // Список телефонов (объектов)
	Timestamp              Time      `json:"timestamp"`  // Время возникновения события
	Event                  EventType `json:"type"`       // Тип события, на которые зарегистрирована подписка
	Phone                  Object    `json:"phone"`      // Номер телефона абонента, по которому отправляются уведомления
	EMail                  string    `json:"email"`      // Email, по которому отправляются уведомления
	IsTelegram             bool      `json:"telegram"`   // Уведомления отправляются на аккаунт telegram указанный в настройках аккаунта
}

SubscribedEvent содержит информацию о подписке на одно из событий.

func (SubscribedEvent) MakeOptions

func (se SubscribedEvent) MakeOptions() (seo SubscribeEventOptions, err error)

MakeOptions создает опции на создание подписки на события на основе существуещей подписки для последующего добавления. Используется для редактирования подписки путем удаления старой и добавления новой.

func (*SubscribedEvent) UnmarshalJSON

func (se *SubscribedEvent) UnmarshalJSON(data []byte) (err error)

type SubscribedEvents

type SubscribedEvents []SubscribedEvent

SubscribedEvents является списком подписок на события.

type Tariff

type Tariff struct {
	AbonentPayment float64 `json:"abon"`    // Абоненская плата
	RequestCost    float64 `json:"request"` // Стоимость запроса
	TariffTitle    string  `json:"title"`   // Название тарифа
}

Tariff представляет собой структуру тариф для одного из сервисов.

func (*Tariff) UnmarshalJSON

func (t *Tariff) UnmarshalJSON(data []byte) (err error)

type TariffType

type TariffType string

TariffType представляет собой тип тарифа.

const (
	TariffManual   TariffType = "0"   // Вручную
	TariffOnline   TariffType = "1"   // Онлайн
	TariffOneMonth TariffType = "3"   // Пакет на 1 месяц
	TariffEvery15  TariffType = "15"  // Каждые 15 мин
	TariffEvery30  TariffType = "30"  // Каждые 30 мин
	TariffEvery60  TariffType = "60"  // Каждые 60 мин
	TariffEvery180 TariffType = "180" // Каждые 3 часа
)

type Time

type Time time.Time

Time - временная метка.

func (Time) Time

func (t Time) Time() time.Time

Time возвращает временную метку в виде time.Time.

func (*Time) UnmarshalJSON

func (t *Time) UnmarshalJSON(data []byte) error

type Weekday added in v0.1.4

type Weekday int
const (
	Monday Weekday = iota
	Tuesday
	Wednesday
	Thursday
	Friday
	Saturday
	Sunday
)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL