All Downloads are FREE. Search and download functionalities are using the official Maven repository.

prerna.forms.UpdateFormReactor Maven / Gradle / Ivy

The newest version!
package prerna.forms;

import java.io.IOException;
import java.util.Map;

import prerna.auth.AuthProvider;
import prerna.auth.User;
import prerna.engine.api.IDatabaseEngine;
import prerna.reactor.AbstractReactor;
import prerna.sablecc2.om.PixelDataType;
import prerna.sablecc2.om.ReactorKeysEnum;
import prerna.sablecc2.om.nounmeta.NounMetadata;
import prerna.util.Utility;

import prerna.util.Constants;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class UpdateFormReactor extends AbstractReactor {

	private static final String FORM_DATA = "form_input";

	private static final Logger classLogger = LogManager.getLogger(UpdateFormReactor.class);

	public UpdateFormReactor() {
		this.keysToGet = new String[]{ReactorKeysEnum.DATABASE.getKey(), FORM_DATA};
	}

	@Override
	public NounMetadata execute() {
		String userId = null;
		User user = this.insight.getUser();
		if(user.getAccessToken(AuthProvider.CAC) != null) {
			userId = user.getAccessToken(AuthProvider.CAC).getId();
		} else if(user.getAccessToken(AuthProvider.SAML) != null) {
			// if not CAC - we are using SMAL
			userId = user.getAccessToken(AuthProvider.SAML).getId();
		}
		if(userId == null) {
			throw new IllegalArgumentException("Could not identify user");
		}
		
		String databaseName = this.store.getNoun(this.keysToGet[0]).get(0) + "";
		Map engineHash = (Map) this.store.getNoun(FORM_DATA).get(0);

		IDatabaseEngine engine = Utility.getDatabase(databaseName);
		AbstractFormBuilder formbuilder = FormFactory.getFormBuilder(engine);
		try {
			formbuilder.commitFormData(engineHash, userId);
		} catch (IOException e) {
			classLogger.error(Constants.STACKTRACE, e);
			return new NounMetadata(false, PixelDataType.BOOLEAN);
		}
		return new NounMetadata(true, PixelDataType.BOOLEAN);
	}
	public String getName()
	{
		return "UpdateForms";
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy