Skip to content

Commit b0e61d9

Browse files

File tree

2 files changed

+34
-5
lines changed

2 files changed

+34
-5
lines changed

corporate.go

+26-5
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,24 @@ var ErrEmptyAuthMaker = errors.New("authMaker is nil")
1313
type CorporateAPI interface {
1414
CommonAPI
1515

16-
// Auth initializes access.
17-
// https://api.monobank.ua/docs/corporate.html#operation--personal-auth-request-post
16+
// Settings returns information about company.
17+
// https://api.monobank.ua/docs/corporate.html#tag/Avtorizaciya-ta-nalashtuvannya-kompaniyi/paths/~1personal~1corp~1settings/get
18+
Settings(ctx context.Context) (*CorpSettings, error)
19+
20+
// Auth initializes client access.
21+
// https://api.monobank.ua/docs/corporate.html#tag/Kliyentski-personalni-dani/paths/~1personal~1auth~1request/post
1822
Auth(ctx context.Context, callbackURL string, permissions ...string) (*TokenRequest, error)
1923

2024
// CheckAuth checks status of request for client's personal data.
21-
// https://api.monobank.ua/docs/corporate.html#operation--personal-auth-request-get
25+
// https://api.monobank.ua/docs/corporate.html#tag/Kliyentski-personalni-dani/paths/~1personal~1auth~1request/get
2226
CheckAuth(ctx context.Context, requestID string) error
2327

24-
// ClientInfo - https://api.monobank.ua/docs/corporate.html#operation--personal-client-info-get
28+
// ClientInfo
29+
// https://api.monobank.ua/docs/corporate.html#tag/Kliyentski-personalni-dani/paths/~1personal~1client-info/get
2530
ClientInfo(ctx context.Context, requestID string) (*ClientInfo, error)
2631

2732
// Transactions - gets bank account statements(transactions)
28-
// https://api.monobank.ua/docs/corporate.html#operation--personal-statement--account---from---to--get
33+
// https://api.monobank.ua/docs/corporate.html#tag/Kliyentski-personalni-dani/paths/~1personal~1statement~1{account}~1{from}~1{to}/get
2934
Transactions(ctx context.Context, requestID, accountID string, from, to time.Time) (Transactions, error)
3035
}
3136

@@ -106,6 +111,22 @@ func (c CorporateClient) Transactions(ctx context.Context, requestID, accountID
106111
return authClient.commonClient.Transactions(ctx, accountID, from, to)
107112
}
108113

114+
func (c CorporateClient) Settings(ctx context.Context) (*CorpSettings, error) {
115+
const urlPath = "/personal/corp/settings"
116+
117+
authClient := c.withAuth(c.authMaker.New(""))
118+
119+
req, err := http.NewRequestWithContext(ctx, http.MethodGet, urlPath, http.NoBody)
120+
if err != nil {
121+
return nil, fmt.Errorf("failed to create request: %w", err)
122+
}
123+
124+
var v CorpSettings
125+
err = authClient.do(req, &v, http.StatusOK)
126+
127+
return &v, err
128+
}
129+
109130
// withAuth returns copy of CorporateClient with authorizer
110131
// TODO: remove?
111132
func (c CorporateClient) withAuth(auth Authorizer) CorporateClient {

types.go

+8
Original file line numberDiff line numberDiff line change
@@ -109,3 +109,11 @@ type TokenRequest struct {
109109
RequestID string `json:"tokenRequestId"` // Unique token request ID.
110110
AcceptURL string `json:"acceptUrl"` // URL to redirect client or build QR on top of it.
111111
}
112+
113+
type CorpSettings struct {
114+
Pubkey string `json:"pubkey"`
115+
Name string `json:"name"`
116+
Permission string `json:"permission"`
117+
Logo string `json:"logo"`
118+
Webhook *string `json:"webhook"`
119+
}

0 commit comments

Comments
 (0)