-
Notifications
You must be signed in to change notification settings - Fork 4
/
commission_report_in_service.go
84 lines (76 loc) · 5.09 KB
/
commission_report_in_service.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
package moysklad
import (
"context"
"fmt"
"github.com/go-resty/resty/v2"
"github.com/google/uuid"
)
// CommissionReportInService
// Сервис для работы с полученными отчётами комиссионера.
type CommissionReportInService struct {
Endpoint
endpointGetList[CommissionReportIn]
endpointCreate[CommissionReportIn]
endpointCreateUpdateDeleteMany[CommissionReportIn]
endpointDelete
endpointGetById[CommissionReportIn]
endpointUpdate[CommissionReportIn]
endpointMetadata[MetadataAttributeSharedStates]
endpointPositions[CommissionReportInPosition]
endpointAttributes
endpointSyncID[CommissionReportIn]
endpointNamedFilter
endpointTemplate[CommissionReportIn]
endpointPublication
endpointRemove
}
func NewCommissionReportInService(client *Client) *CommissionReportInService {
e := NewEndpoint(client, "entity/commissionreportin")
return &CommissionReportInService{
Endpoint: e,
endpointGetList: endpointGetList[CommissionReportIn]{e},
endpointCreate: endpointCreate[CommissionReportIn]{e},
endpointCreateUpdateDeleteMany: endpointCreateUpdateDeleteMany[CommissionReportIn]{e},
endpointDelete: endpointDelete{e},
endpointGetById: endpointGetById[CommissionReportIn]{e},
endpointUpdate: endpointUpdate[CommissionReportIn]{e},
endpointMetadata: endpointMetadata[MetadataAttributeSharedStates]{e},
endpointPositions: endpointPositions[CommissionReportInPosition]{e},
endpointAttributes: endpointAttributes{e},
endpointSyncID: endpointSyncID[CommissionReportIn]{e},
endpointNamedFilter: endpointNamedFilter{e},
endpointTemplate: endpointTemplate[CommissionReportIn]{e},
endpointPublication: endpointPublication{e},
endpointRemove: endpointRemove{e},
}
}
// GetReturnPositions Получить позиции возврата на склад комиссионера.
// Документация МойСклад: https://dev.moysklad.ru/doc/api/remap/1.2/documents/#dokumenty-poluchennyj-otchet-komissionera-poluchit-pozicii-wozwrata-na-sklad-komissionera
func (s *CommissionReportInService) GetReturnPositions(ctx context.Context, id *uuid.UUID, params *Params) (*MetaArray[CommissionReportInReturnPosition], *resty.Response, error) {
path := fmt.Sprintf("%s/returntocommissionerpositions", id)
return NewRequestBuilder[MetaArray[CommissionReportInReturnPosition]](s.client, path).SetParams(params).Get(ctx)
}
// GetReturnPositionById Получить позицию возврата на склад комиссионера.
// Документация МойСклад: https://dev.moysklad.ru/doc/api/remap/1.2/documents/#dokumenty-poluchennyj-otchet-komissionera-poluchit-poziciu-wozwrata-na-sklad-komissionera
func (s *CommissionReportInService) GetReturnPositionById(ctx context.Context, id, positionId *uuid.UUID, params *Params) (*CommissionReportInReturnPosition, *resty.Response, error) {
path := fmt.Sprintf("%s/returntocommissionerpositions/%s", id, positionId)
return NewRequestBuilder[CommissionReportInReturnPosition](s.client, path).SetParams(params).Get(ctx)
}
// CreateReturnPosition Создать позицию возврата на склад комиссионера.
// Документация МойСклад: https://dev.moysklad.ru/doc/api/remap/1.2/documents/#dokumenty-poluchennyj-otchet-komissionera-sozdat-poziciu-wozwrata-na-sklad-komissionera
func (s *CommissionReportInService) CreateReturnPosition(ctx context.Context, id *uuid.UUID, position *CommissionReportInReturnPosition) (*CommissionReportInReturnPosition, *resty.Response, error) {
path := fmt.Sprintf("%s/returntocommissionerpositions", id)
return NewRequestBuilder[CommissionReportInReturnPosition](s.client, path).Post(ctx, position)
}
// UpdateReturnPosition Изменить позицию возврата на склад комиссионера.
// Документация МойСклад: https://dev.moysklad.ru/doc/api/remap/1.2/documents/#dokumenty-poluchennyj-otchet-komissionera-izmenit-poziciu-wozwrata-na-sklad-komissionera
func (s *CommissionReportInService) UpdateReturnPosition(ctx context.Context, id, positionId *uuid.UUID, position *CommissionReportInReturnPosition, params *Params) (*CommissionReportInReturnPosition, *resty.Response, error) {
path := fmt.Sprintf("%s/returntocommissionerpositions/%s", id, positionId)
return NewRequestBuilder[CommissionReportInReturnPosition](s.client, path).SetParams(params).Put(ctx, position)
}
// DeleteReturnPosition Удалить позицию возврата на склад комиссионера.
// Документация МойСклад: https://dev.moysklad.ru/doc/api/remap/1.2/documents/#dokumenty-poluchennyj-otchet-komissionera-udalit-poziciu-wozwrata-na-sklad-komissionera
func (s *CommissionReportInService) DeleteReturnPosition(ctx context.Context, id, positionId *uuid.UUID) (bool, *resty.Response, error) {
path := fmt.Sprintf("%s/positions/%s", id, positionId)
return NewRequestBuilder[any](s.client, path).Delete(ctx)
}