package fi.otavanopisto.pyramus.util.dataimport.scripting.api;
import fi.otavanopisto.pyramus.dao.DAOFactory;
import fi.otavanopisto.pyramus.domainmodel.clientapplications.ClientApplication;
import fi.otavanopisto.pyramus.domainmodel.clientapplications.ClientApplicationAuthorizationCode;
import fi.otavanopisto.pyramus.domainmodel.users.User;
import fi.otavanopisto.pyramus.util.dataimport.scripting.InvalidScriptException;
public class ClientApplicationAuthorizationCodeAPI {
public ClientApplicationAuthorizationCodeAPI(Long loggedUserId) {
this.loggedUserId = loggedUserId;
}
public Long create(String authorizationCode, String redirectUrl, Long userId, Long clientApplicationId) throws InvalidScriptException {
DAOFactory daoFactory = DAOFactory.getInstance();
User user = daoFactory.getStaffMemberDAO().findById(userId);
if (user == null) {
user = daoFactory.getStudentDAO().findById(userId);
}
if (user == null) {
throw new InvalidScriptException("User not found");
}
ClientApplication clientApplication = daoFactory.getClientApplicationDAO().findById(clientApplicationId);
if (clientApplication == null) {
throw new InvalidScriptException("Client application not found");
}
ClientApplicationAuthorizationCode code =
DAOFactory.getInstance().getClientApplicationAuthorizationCodeDAO().create(user, clientApplication, authorizationCode, redirectUrl);
return code.getId();
}
@SuppressWarnings("unused")
private Long loggedUserId;
}