(tenant, username string)
| 499 | var once sync.Once |
| 500 | |
| 501 | func (sm *StoreManager) GetUser(tenant, username string) (*User, bool, error) { |
| 502 | key := fmt.Sprintf("dtleUser/%v/%v", tenant, username) |
| 503 | exists, err := sm.consulStore.Exists(key) |
| 504 | if err != nil { |
| 505 | return nil, exists, err |
| 506 | } else if !exists { |
| 507 | return nil, exists, nil |
| 508 | } |
| 509 | kp, err := sm.consulStore.Get(key) |
| 510 | if nil != err { |
| 511 | return nil, false, err |
| 512 | } |
| 513 | user := new(User) |
| 514 | err = json.Unmarshal(kp.Value, user) |
| 515 | if err != nil { |
| 516 | return nil, false, fmt.Errorf("get %v from consul, unmarshal err : %v", key, err) |
| 517 | } |
| 518 | return user, true, nil |
| 519 | } |
| 520 | func (sm *StoreManager) SaveUser(user *User) error { |
| 521 | key := fmt.Sprintf("dtleUser/%v/%v", user.Tenant, user.Username) |
| 522 | jobBytes, err := json.Marshal(user) |
no test coverage detected