Help 2 hours help

We have to know how to get the spike to run both directions right now we only have it set to run one direction we have tried everything please help

#include "../Robotmap.h"

Sweeper::Sweeper() : Subsystem("Sweeper") {
	relay = new Relay(SWEEPER_RELAY, Relay::kBothDirections);
	isIn = true;
	isOn = true;
}
    
// No default command defined for Conveyor.
void Sweeper::InitDefaultCommand() {}

// Start running the instance with the current state
void Sweeper::run() {
	if( isOn ) {
		if( isIn ) {
			relay->Set(Relay::kForward);
		}
		else {
			relay->Set(Relay::kReverse);
		}
	}
	else {
		relay->Set(Relay::kOff);




#ifndef SWEEPER_H
#define SWEEPER_H
#include "Commands/Subsystem.h"
#include "WPILib.h"

/*
 * Interface for Sweeper that will take balls from the floor into robot.
 * 
 * Hardware:
 *   - Relay
 * States:
 *   - on/off
 *   - balls going in/out
 * Driver control:
 *   - two buttons on joystick that toggle its states.  
 */

class Sweeper: public Subsystem {
private:
	Relay *relay;
	bool   isOn;
	bool   isIn;
public:
	Sweeper();
	void toggleOnOffState() { isOn = !isOn; }		
	void toggleInOutState(){ isIn = !isIn; }	
	void run();									// run Conveyor based on current state
	void InitDefaultCommand();					
};

#endif