megaplan

package module
v1.3.2 Latest Latest
Warning

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

Go to latest
Published: Sep 14, 2020 License: MIT Imports: 14 Imported by: 0

README

megaplan

Смотри примеры в examples

master

https://dev.megaplan.ru/r1905/api/index.html

В данный момент поддерживает v1 API.

Представляет простую обертку над http методами GET и POST Алгоритм шифрования запроса см. в методе queryHashing, может быть реализован на любом ЯП.

go get github.com/stvoidit/megaplan

Пример использования:

var api = megaplan.NewAPI(accessID, secretKey, myhost, "", "")
response, err := api.GET("/BumsCommonApiV01/UserInfo/id.api", nil)
if err != nil {
	panic(err)
}
defer response.Body.Close()
fmt.Println(response.Status)
type UserInfo struct {
	UserID       int64  `json:"UserId"`
	EmployeeID   int64  `json:"EmployeeId"`
	ContractorID string `json:"ContractorId"`
}
var user = new(UserInfo)
if err := json.NewDecoder(tee).Decode(megaplan.ExpectedResponse(user)); err != nil {
	panic(err)
}
fmt.Printf("%+v\n", user)

v3

https://dev.megaplan.ru/r1905/apiv3/index.html

Уже может использоваться, но не имеет кастомизации возможности сохранения токена. Частично в процессе доработки удобства использования.

Представляет собой обертку над oauth2.

go get github.com/stvoidit/megaplan/v3

Примечание

v1 и v3 координально отличаются по схемам данных, обработке и содержанию. Многие сущности не описаны в v3 документации. Например имеется endpoint на /api/v3/department, но при этом сущность сотрудников вообще не имеет данных об отделах. Имеется endpoint /api/v3/position, но не описан в докуменатации, хотя представляет структурированные данные о должностях сотрудников.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type API

type API struct {
	// contains filtered or unexported fields
}

API - Структура объекта API v1

func NewAPI added in v1.2.1

func NewAPI(accessID, secretKey, domain, appUUID, appSecret string) *API

NewAPI - новый экземпляр api

func (API) CheckUser

func (api API) CheckUser(userSign string) (*http.Response, error)

CheckUser - проверка пользователя для встроенного приложения

func (API) Do added in v1.3.1

func (api API) Do(request *http.Request) (response *http.Response, err error)

Do - обертка над стандартным Do(*httpRequest)

func (API) GET

func (api API) GET(uri string, payload map[string]interface{}) (*http.Response, error)

GET - get запрос к API

func (*API) GetToken

func (api *API) GetToken(domain, login, password string) (err error)

GetToken - Получение токена API

func (API) POST

func (api API) POST(uri string, payload map[string]interface{}) (*http.Response, error)

POST - post запрос на API

func (API) SaveToken added in v1.3.1

func (api API) SaveToken(filename string) error

SaveToken - сохранить конфигурацию в json

func (*API) SetCustomClient added in v1.3.1

func (api *API) SetCustomClient(c *http.Client)

SetCustomClient - установить свой http.Client для API

func (*API) SetEmbeddedApplication added in v1.2.1

func (api *API) SetEmbeddedApplication(appuuid, appsecret string)

SetEmbeddedApplication - установить ключ от встроенного приложения

type Response added in v1.3.1

type Response struct {
	Status struct {
		Code    string `json:"code"`
		Message string `json:"message"`
	} `json:"status"`
	Data interface{} `json:"data"`
}

Response - структура стандартного ответа API

func ExpectedResponse added in v1.3.1

func ExpectedResponse(data interface{}) *Response

ExpectedResponse - оборачивает ожидаемый ответ в стандартную структуру. Ожидаемый интерфейс будет находиться в поле Response.Data. После обработки необходимо сделать assert вложенного интерфейса к ожидаемому (см. примеры)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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