MCPcopy Create free account
hub / github.com/devaccuracy/ledgerforge / GetDetokenizedIdentity

Method GetDetokenizedIdentity

identity.go:338–382  ·  view source on GitHub ↗

GetDetokenizedIdentity returns a copy of the identity with all fields detokenized. Note: This does not modify the stored identity. Parameters: - identityID string: The ID of the identity. Returns: - *model.Identity: A pointer to the detokenized Identity model. - error: An error if the identity cou

(identityID string)

Source from the content-addressed store, hash-verified

336// - *model.Identity: A pointer to the detokenized Identity model.
337// - error: An error if the identity could not be detokenized.
338func (l *LedgerForge) GetDetokenizedIdentity(identityID string) (*model.Identity, error) {
339 // Get the identity
340 identity, err := l.GetIdentity(identityID)
341 if err != nil {
342 return nil, err
343 }
344
345 // Create a copy
346 detokenizedIdentity := *identity
347
348 // Detokenize all tokenized fields
349 if identity.MetaData != nil {
350 tokenizedFields, ok := identity.MetaData["tokenized_fields"].(map[string]bool)
351 if ok {
352 for field, isTokenized := range tokenizedFields {
353 if isTokenized {
354 originalValue, err := l.DetokenizeIdentityField(identityID, field)
355 if err != nil {
356 return nil, err
357 }
358
359 // Set the original value in the copy
360 val := reflect.ValueOf(&detokenizedIdentity).Elem()
361 fieldVal := val.FieldByName(field)
362 if fieldVal.IsValid() && fieldVal.CanSet() {
363 fieldVal.SetString(originalValue)
364 }
365 }
366 }
367 }
368 }
369
370 // Create a clean copy of metadata without tokenized_fields
371 if detokenizedIdentity.MetaData != nil {
372 newMetaData := make(map[string]interface{})
373 for k, v := range detokenizedIdentity.MetaData {
374 if k != "tokenized_fields" {
375 newMetaData[k] = v
376 }
377 }
378 detokenizedIdentity.MetaData = newMetaData
379 }
380
381 return &detokenizedIdentity, nil
382}
383
384// convertToStructFieldName ensures consistent field name format by returning
385// the Go struct field name (typically capitalized) for the given input

Callers

nothing calls this directly

Calls 3

GetIdentityMethod · 0.95
IsValidMethod · 0.80

Tested by

no test coverage detected