acoustic-shampoo-32095
11/21/2023, 5:55 PMThis does not works:
func (kc *KratosClient) UpdateAdminMetaData(ctx context.Context, signUpRequest requests.SignUpRequest, role string) (interface{}, error) {
// Construct the traits from the signUpRequest
traits := map[string]interface{}{
"email": signUpRequest.Email,
"firstname": signUpRequest.Firstname,
"lastname": signUpRequest.Lastname
}
// Convert traits to json.RawMessage
// traitsBytes, err := json.Marshal(traits)
// if err != nil {
// kc.logger.Error().Msgf("Error marshalling traits: %v", err)
// return nil, err
// }
// Set up the metadata you want to add
metadataAdmin := AdminMetadata{
Role: role,
}
kc.logger.Info().Msgf("Metadata admin: %v", metadataAdmin)
// Create a new Identity object
identity := &ory.UpdateIdentityBody{}
kc.logger.Info().Msgf("Identity: %v", identity)
// Set the state, schema ID, and traits
identity.SetState("active")
identity.SetSchemaId("default")
identity.SetTraits(traits)
// var traitsMap map[string]interface{}
// err = json.Unmarshal(traitsBytes, &traitsMap)
// if err != nil {
// kc.logger.Error().Msgf("Error unmarshalling traits: %v", err)
// return nil, err
// }
// identity.SetTraits(traitsMap)
// Set the admin metadata
identity.SetMetadataAdmin(metadataAdmin)
kc.logger.Info().Msgf("Identity end: %v", identity)
// Use the Ory SDK to update the identity
updatedIdentity, res, err := kc.oryClient.IdentityAPI.UpdateIdentity(ctx, signUpRequest.IdentityId.String()).UpdateIdentityBody(*identity).Execute()
if err != nil {
kc.logger.Error().Msgf("Error updating identity metadata: %v", err)
kc.logger.Error().Msgf("Response: %v", res)
kc.logger.Error().Msgf("Updated identity: %v", updatedIdentity)
return nil, err
}
kc.logger.Info().Msg("Admin metadata updated successfully")
return identity, nil
}
and here the logging I got:
{"level":"info","time":"2023-11-21T18:47:46+01:00","message":"Identity: &{<nil> <nil> <nil> map[] map[]}"}
{"level":"info","time":"2023-11-21T18:47:46+01:00","message":"Identity end: &{<nil> {ADMIN} <nil> default active map[email:popoip@poas.de firstname:okdas lastname:dasopk position:dalksm,] map[]}"}
{"level":"error","time":"2023-11-21T18:47:46+01:00","message":"Error updating identity metadata: undefined response type"}
{"level":"error","time":"2023-11-21T18:47:46+01:00","message":"Response: &{404 Not Found 404 HTTP/1.1 1 1 map[Content-Length:[19] Content-Type:[text/plain; charset=utf-8] Date:[Tue, 21 Nov 2023 17:47:46 GMT] X-Content-Type-Options:[nosniff]] {404 page not found\n} 19 [] false false map[] 0x1400057e400 <nil>}"}
{"level":"error","time":"2023-11-21T18:47:46+01:00","message":"Updated identity: <nil>"}
{"level":"error","time":"2023-11-21T18:47:46+01:00","message":"Error updating admin metadata: undefined response type"}
tall-easter-2247
11/21/2023, 11:28 PMacoustic-shampoo-32095
11/22/2023, 7:10 AMacoustic-shampoo-32095
11/22/2023, 12:16 PM[]byte
representation of the traits back into a map[string]interface{}
. I seem to have done it wrong before, it works now.