```func (config *Config) ListIdentitiesHandler(c *...
# talk-kratos
b
Copy code
func (config *Config) ListIdentitiesHandler(c *gin.Context) {

	checkIdentity := config.ApiClient.V0alpha2Api.AdminListIdentities(context.Background())
	subjectList := []models.List{}
	list, _, err := checkIdentity.Execute()
	if err != nil {
		fmt.Fprintf(os.Stderr, "error while checking identities %v", err)
	}
	subject := models.List{}
	for _, identity := range list {
		val := identity.GetTraits()
		traits, ok := val.(map[string]interface{})
		if !ok {
			log.Printf("expected map of string but received %#v", val)
		}
		if email, ok := traits["email"]; ok {
			subject.Subject = email.(string)
		} else if firstName, ok := traits["first"]; ok {
			subject.Subject = firstName.(string)
		} else {
			log.Printf("Both email and firstName not available , traits = %#v \n", traits)
		}

		subject.Id = identity.Id
		subjectList = append(subjectList, subject)

		err = json.NewEncoder(c.Writer).Encode(subjectList)

		if err != nil {
			fmt.Printf("Error: %s", err)
			return
		}
	}

}