in internal/service/handler.go [62:123]
func transResponseFormat(secret string, t model.ResponseType) (payload []byte, err error) {
// alibaba cloud kms format
if t == model.ResponseTypeForAliyunKMS {
return []byte(secret), nil
}
var secretValue kmssdk.GetSecretValueResponseBody
err = json.Unmarshal([]byte(secret), &secretValue)
if err != nil {
err = fmt.Errorf("unmarshal secret value error:%w", err)
return
}
// aws format
if t == model.ResponseTypeForAWSSecretManager {
secretInfo := &model.SecretManagerResponse{
Name: *secretValue.SecretName,
VersionId: *secretValue.VersionId,
SecretString: *secretValue.SecretData,
VersionStages: make([]string, 0),
CreatedDate: *secretValue.CreateTime,
}
if len(secretValue.VersionStages.VersionStage) > 0 {
for _, v := range secretValue.VersionStages.VersionStage {
secretInfo.VersionStages = append(secretInfo.VersionStages, *v)
}
}
payload, err = json.MarshalIndent(secretInfo, "", " ")
if err != nil {
err = fmt.Errorf("marshal secret info error:%w", err)
return
}
}
// vault kv format
if t == model.ResponseTypeForVaultKvSecret {
var data map[string]interface{}
err = json.Unmarshal([]byte(*secretValue.SecretData), &data)
if err != nil {
err = errors.New("secret data not kv format")
return
}
kvSecret := &model.KVSecret{
Data: data,
Metadata: &model.SecretMetadata{
CreatedTime: *secretValue.CreateTime,
},
}
kvV2SecretData := model.KvV2SecretData{
Data: kvSecret,
}
payload, err = json.Marshal(kvV2SecretData)
if err != nil {
err = fmt.Errorf("marshal secret data error:%w", err)
return
}
}
return
}