Исправил модели данных
This commit is contained in:
parent
ede7b6cbde
commit
eb1ceef1e5
5 changed files with 109 additions and 12 deletions
|
@ -3,7 +3,10 @@ package amo
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/qdimka/go-amo/api"
|
"github.com/qdimka/go-amo/api"
|
||||||
"github.com/qdimka/go-amo/models"
|
"github.com/qdimka/go-amo/models/companies"
|
||||||
|
"github.com/qdimka/go-amo/models/contacts"
|
||||||
|
"github.com/qdimka/go-amo/models/leads"
|
||||||
|
"github.com/qdimka/go-amo/models/users"
|
||||||
)
|
)
|
||||||
|
|
||||||
type AmoClient struct {
|
type AmoClient struct {
|
||||||
|
@ -21,8 +24,8 @@ func NewAmoClient(options *api.ClientOptions) (*AmoClient, error) {
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (client *AmoClient) GetLead(leadId string, query string) (*models.Lead, error) {
|
func (client *AmoClient) GetLead(leadId string, query string) (*leads.Lead, error) {
|
||||||
deal := new(models.Lead)
|
deal := new(leads.Lead)
|
||||||
resource := fmt.Sprintf("/api/v4/leads/%s", leadId)
|
resource := fmt.Sprintf("/api/v4/leads/%s", leadId)
|
||||||
if len(query) != 0 {
|
if len(query) != 0 {
|
||||||
resource = resource + "?" + query
|
resource = resource + "?" + query
|
||||||
|
@ -32,19 +35,19 @@ func (client *AmoClient) GetLead(leadId string, query string) (*models.Lead, err
|
||||||
return deal, err
|
return deal, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (client *AmoClient) GetUser(userId string) (*models.User, error) {
|
func (client *AmoClient) GetUser(userId string) (*users.User, error) {
|
||||||
user := new(models.User)
|
user := new(users.User)
|
||||||
err := client.api.Get(fmt.Sprintf("/api/v4/users/%s", userId), user)
|
err := client.api.Get(fmt.Sprintf("/api/v4/users/%s", userId), user)
|
||||||
return user, err
|
return user, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (client *AmoClient) UpdateLead(lead *models.Lead) error {
|
func (client *AmoClient) UpdateLead(lead *leads.Lead) error {
|
||||||
err := client.api.Patch(fmt.Sprintf("/api/v4/leads/%d", lead.ID), lead, nil)
|
err := client.api.Patch(fmt.Sprintf("/api/v4/leads/%d", lead.ID), lead, nil)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (client *AmoClient) GetCompany(companyId string, query string) (*models.Lead, error) {
|
func (client *AmoClient) GetCompany(companyId string, query string) (*companies.Company, error) {
|
||||||
deal := new(models.Lead)
|
deal := new(companies.Company)
|
||||||
resource := fmt.Sprintf("/api/v4/companies/%s", companyId)
|
resource := fmt.Sprintf("/api/v4/companies/%s", companyId)
|
||||||
if len(query) != 0 {
|
if len(query) != 0 {
|
||||||
resource = resource + "?" + query
|
resource = resource + "?" + query
|
||||||
|
@ -54,8 +57,8 @@ func (client *AmoClient) GetCompany(companyId string, query string) (*models.Lea
|
||||||
return deal, err
|
return deal, err
|
||||||
}
|
}
|
||||||
|
|
||||||
func (client *AmoClient) GetContact(contactId string, query string) (*models.Lead, error) {
|
func (client *AmoClient) GetContact(contactId string, query string) (*contacts.Contact, error) {
|
||||||
deal := new(models.Lead)
|
deal := new(contacts.Contact)
|
||||||
resource := fmt.Sprintf("/api/v4/contacts/%s", contactId)
|
resource := fmt.Sprintf("/api/v4/contacts/%s", contactId)
|
||||||
if len(query) != 0 {
|
if len(query) != 0 {
|
||||||
resource = resource + "?" + query
|
resource = resource + "?" + query
|
||||||
|
|
38
models/companies/companies.go
Normal file
38
models/companies/companies.go
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
package companies
|
||||||
|
|
||||||
|
type Company struct {
|
||||||
|
ID int `json:"id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
ResponsibleUserID int `json:"responsible_user_id"`
|
||||||
|
GroupID int `json:"group_id"`
|
||||||
|
CreatedBy int `json:"created_by"`
|
||||||
|
UpdatedBy int `json:"updated_by"`
|
||||||
|
CreatedAt int `json:"created_at"`
|
||||||
|
UpdatedAt int `json:"updated_at"`
|
||||||
|
ClosestTaskAt interface{} `json:"closest_task_at"`
|
||||||
|
CustomFieldsValues []CustomFieldsValues `json:"custom_fields_values"`
|
||||||
|
AccountID int `json:"account_id"`
|
||||||
|
Links Links `json:"_links"`
|
||||||
|
Embedded Embedded `json:"_embedded"`
|
||||||
|
}
|
||||||
|
type Values struct {
|
||||||
|
Value string `json:"value"`
|
||||||
|
EnumID int `json:"enum_id"`
|
||||||
|
Enum string `json:"enum"`
|
||||||
|
}
|
||||||
|
type CustomFieldsValues struct {
|
||||||
|
FieldID int `json:"field_id"`
|
||||||
|
FieldName string `json:"field_name"`
|
||||||
|
FieldCode string `json:"field_code"`
|
||||||
|
FieldType string `json:"field_type"`
|
||||||
|
Values []Values `json:"values"`
|
||||||
|
}
|
||||||
|
type Self struct {
|
||||||
|
Href string `json:"href"`
|
||||||
|
}
|
||||||
|
type Links struct {
|
||||||
|
Self Self `json:"self"`
|
||||||
|
}
|
||||||
|
type Embedded struct {
|
||||||
|
Tags []interface{} `json:"tags"`
|
||||||
|
}
|
56
models/contacts/contacts.go
Normal file
56
models/contacts/contacts.go
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
package contacts
|
||||||
|
|
||||||
|
type Contact struct {
|
||||||
|
ID int `json:"id"`
|
||||||
|
Name string `json:"name"`
|
||||||
|
FirstName string `json:"first_name"`
|
||||||
|
LastName string `json:"last_name"`
|
||||||
|
ResponsibleUserID int `json:"responsible_user_id"`
|
||||||
|
GroupID int `json:"group_id"`
|
||||||
|
CreatedBy int `json:"created_by"`
|
||||||
|
UpdatedBy int `json:"updated_by"`
|
||||||
|
CreatedAt int `json:"created_at"`
|
||||||
|
UpdatedAt int `json:"updated_at"`
|
||||||
|
ClosestTaskAt interface{} `json:"closest_task_at"`
|
||||||
|
CustomFieldsValues []CustomFieldsValues `json:"custom_fields_values"`
|
||||||
|
AccountID int `json:"account_id"`
|
||||||
|
Links Links `json:"_links"`
|
||||||
|
Embedded Embedded `json:"_embedded"`
|
||||||
|
}
|
||||||
|
type Values struct {
|
||||||
|
Value string `json:"value"`
|
||||||
|
EnumID int `json:"enum_id"`
|
||||||
|
Enum string `json:"enum"`
|
||||||
|
}
|
||||||
|
type CustomFieldsValues struct {
|
||||||
|
FieldID int `json:"field_id"`
|
||||||
|
FieldName string `json:"field_name"`
|
||||||
|
FieldCode string `json:"field_code"`
|
||||||
|
FieldType string `json:"field_type"`
|
||||||
|
Values []Values `json:"values"`
|
||||||
|
}
|
||||||
|
type Self struct {
|
||||||
|
Href string `json:"href"`
|
||||||
|
}
|
||||||
|
type Links struct {
|
||||||
|
Self Self `json:"self"`
|
||||||
|
}
|
||||||
|
type Leads struct {
|
||||||
|
ID int `json:"id"`
|
||||||
|
Links Links `json:"_links"`
|
||||||
|
}
|
||||||
|
type Customers struct {
|
||||||
|
ID int `json:"id"`
|
||||||
|
Links Links `json:"_links"`
|
||||||
|
}
|
||||||
|
type Companies struct {
|
||||||
|
ID int `json:"id"`
|
||||||
|
Links Links `json:"_links"`
|
||||||
|
}
|
||||||
|
type Embedded struct {
|
||||||
|
Tags []interface{} `json:"tags"`
|
||||||
|
Leads []Leads `json:"leads"`
|
||||||
|
Customers []Customers `json:"customers"`
|
||||||
|
CatalogElements []interface{} `json:"catalog_elements"`
|
||||||
|
Companies []Companies `json:"companies"`
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
package models
|
package leads
|
||||||
|
|
||||||
type Lead struct {
|
type Lead struct {
|
||||||
ID int `json:"id"`
|
ID int `json:"id"`
|
|
@ -1,4 +1,4 @@
|
||||||
package models
|
package users
|
||||||
|
|
||||||
type User struct {
|
type User struct {
|
||||||
ID int `json:"id"`
|
ID int `json:"id"`
|
Loading…
Reference in a new issue