|
1 | 1 | package api |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "context" |
4 | 5 | "encoding/json" |
5 | 6 | "errors" |
6 | 7 | "fmt" |
| 8 | + "github.com/Keyfactor/keyfactor-go-client-sdk/api/keyfactor" |
7 | 9 | "log" |
8 | 10 | "net/http" |
9 | 11 | "strconv" |
@@ -459,6 +461,65 @@ func (c *Client) RemoveCertificateFromStores(config *RemoveCertificateFromStore) |
459 | 461 | return jsonResp, nil |
460 | 462 | } |
461 | 463 |
|
| 464 | +func (c *Client) GetCertStoreInventoryV1(storeId string) (*[]CertStoreInventoryV1, error) { |
| 465 | + |
| 466 | + xKeyfactorRequestedWith := "APIClient" |
| 467 | + xKeyfactorApiVersion := "1" |
| 468 | + |
| 469 | + configuration := keyfactor.NewConfiguration(make(map[string]string)) |
| 470 | + apiClient := keyfactor.NewAPIClient(configuration) |
| 471 | + |
| 472 | + resp, _, err := apiClient.CertificateStoreApi.CertificateStoreGetCertificateStoreInventory(context.Background(), storeId).XKeyfactorRequestedWith(xKeyfactorRequestedWith).XKeyfactorApiVersion(xKeyfactorApiVersion).Execute() |
| 473 | + |
| 474 | + if err != nil { |
| 475 | + return nil, err |
| 476 | + } |
| 477 | + |
| 478 | + var newResp []CertStoreInventoryV1 |
| 479 | + |
| 480 | + if len(resp) == 0 { |
| 481 | + newResp = []CertStoreInventoryV1{} |
| 482 | + } else { |
| 483 | + for _, certInv := range resp { |
| 484 | + var newInvCertList []InventoriedCertificate |
| 485 | + var newParams = make(map[string]interface{}) |
| 486 | + for _, param := range certInv.Parameters { |
| 487 | + for key, value := range param { |
| 488 | + newParams[key] = value |
| 489 | + } |
| 490 | + } |
| 491 | + for _, storedCert := range certInv.Certificates { |
| 492 | + var newInvCert = InventoriedCertificate{ |
| 493 | + Id: int(*storedCert.Id), |
| 494 | + IssuedDN: *storedCert.IssuedDN.Get(), |
| 495 | + SerialNumber: *storedCert.SerialNumber, |
| 496 | + NotBefore: storedCert.NotBefore.String(), |
| 497 | + NotAfter: storedCert.NotAfter.String(), |
| 498 | + SigningAlgorithm: *storedCert.SigningAlgorithm, |
| 499 | + IssuerDN: *storedCert.IssuerDN.Get(), |
| 500 | + Thumbprint: *storedCert.Thumbprint, |
| 501 | + CertStoreInventoryItemId: int(*storedCert.CertStoreInventoryItemId), |
| 502 | + } |
| 503 | + newInvCertList = append(newInvCertList, newInvCert) |
| 504 | + } |
| 505 | + var newInv = CertStoreInventoryV1{ |
| 506 | + CertStoreInventoryItemId: 0, |
| 507 | + Name: *certInv.Name, |
| 508 | + Certificates: newInvCertList, |
| 509 | + Thumbprints: nil, |
| 510 | + Serials: nil, |
| 511 | + Ids: nil, |
| 512 | + Properties: nil, |
| 513 | + Parameters: newParams, |
| 514 | + } |
| 515 | + newResp = append(newResp, newInv) |
| 516 | + } |
| 517 | + } |
| 518 | + |
| 519 | + //jsonResp.Properties = unmarshalPropertiesString(jsonResp.PropertiesString) |
| 520 | + return &newResp, nil |
| 521 | +} |
| 522 | + |
462 | 523 | func (c *Client) GetCertStoreInventory(storeId string) (*[]CertStoreInventory, error) { |
463 | 524 | // Set Keyfactor-specific headers |
464 | 525 | headers := &apiHeaders{ |
|
0 commit comments