anchor.diff:  		if (email != null) {
   			whereClause = "WHERE users.email = @email";
   		}
  +		if (userId != null) {
  +			whereClause = "WHERE users.id = @userId";
  +		}
   		String query = "SELECT * FROM metabolics JOIN users ON users.id = metabolics.user_id " + whereClause;
  -		List<Metabolics> metabolics = await dbConn.query(query, Metabolics, {'username':username, 'email':email});
  +		List<Metabolics> metabolics = await dbConn.query(query, Metabolics, {'username':username, 'email':email, 'userId': userId});
   
   		if (metabolics.length > 0) {
   			metabolic = metabolics[0];
  
positive.code: 
  @app.Route('/getMetabolics')
  @Encode()
  Future<Metabolics> getMetabolics({@app.QueryParam() String username, @app.QueryParam() String email}) async {
  	Metabolics metabolic = new Metabolics();
  
  	PostgreSql dbConn = await dbManager.getConnection();
  
negative.code: Future<int> setMetabolics(@Decode() Metabolics metabolics) async {
  	int result = 0;
  
  	// Check for level increase
  
  	// Level before update
  	Metabolics oldMetabolics = await getMetabolics(userId: metabolics.user_id);
  	int levelStart = getLevel(oldMetabolics.lifetime_img);
  
  	// Level after update
  	int levelEnd = getLevel(metabolics.lifetime_img);
  
  	// Compare
  	if (levelEnd > levelStart) {
  		// Refill energy if level increased (client handles popup checking)
  		metabolics.energy = metabolics.max_energy;
  	}
  
  	// Do not overset the metabolics that have maxes
  
  	if (metabolics.mood > metabolics.max_mood) {
  		metabolics.mood = metabolics.max_mood;
  	}
  
  	if (metabolics.energy > metabolics.max_energy) {
  		metabolics.energy = metabolics.max_energy;
  	}
  
  	// Write to database
  
  	PostgreSql dbConn = await dbManager.getConnection();
  	try {
  