Refactor refreshSession method to reduce number of return
This commit is contained in:
		
							parent
							
								
									2781ea1c95
								
							
						
					
					
						commit
						b734de16e6
					
				|  | @ -145,15 +145,7 @@ func (s *storedSessionLoader) refreshSession(rw http.ResponseWriter, req *http.R | ||||||
| 	err := session.ObtainLock(req.Context(), SessionLockExpireTime) | 	err := session.ObtainLock(req.Context(), SessionLockExpireTime) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		logger.Errorf("Unable to obtain lock: %v", err) | 		logger.Errorf("Unable to obtain lock: %v", err) | ||||||
| 		wasRefreshed, err := s.checkForConcurrentRefresh(session, req) | 		return s.handleObtainLockError(req, session) | ||||||
| 		if err != nil { |  | ||||||
| 			logger.Errorf("Unable to wait for obtained lock: %v", err) |  | ||||||
| 			return err |  | ||||||
| 		} |  | ||||||
| 		if !wasRefreshed { |  | ||||||
| 			return errors.New("unable to obtain lock and session was also not refreshed via concurrent request") |  | ||||||
| 		} |  | ||||||
| 		return nil |  | ||||||
| 	} | 	} | ||||||
| 	defer func() { | 	defer func() { | ||||||
| 		err = session.ReleaseLock(req.Context()) | 		err = session.ReleaseLock(req.Context()) | ||||||
|  | @ -195,6 +187,18 @@ func (s *storedSessionLoader) refreshSession(rw http.ResponseWriter, req *http.R | ||||||
| 	return err | 	return err | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | func (s *storedSessionLoader) handleObtainLockError(req *http.Request, session *sessionsapi.SessionState) error { | ||||||
|  | 	wasRefreshed, err := s.checkForConcurrentRefresh(session, req) | ||||||
|  | 	if err != nil { | ||||||
|  | 		logger.Errorf("Unable to wait for obtained lock: %v", err) | ||||||
|  | 		return err | ||||||
|  | 	} | ||||||
|  | 	if !wasRefreshed { | ||||||
|  | 		return errors.New("unable to obtain lock and session was also not refreshed via concurrent request") | ||||||
|  | 	} | ||||||
|  | 	return nil | ||||||
|  | } | ||||||
|  | 
 | ||||||
| func (s *storedSessionLoader) updateSessionFromStore(req *http.Request, session *sessionsapi.SessionState) error { | func (s *storedSessionLoader) updateSessionFromStore(req *http.Request, session *sessionsapi.SessionState) error { | ||||||
| 	sessionStored, err := s.store.Load(req) | 	sessionStored, err := s.store.Load(req) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue