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

com.openshift.internal.client.AuthorizationResource Maven / Gradle / Ivy

/******************************************************************************* 
 * Copyright (c) 2014 Red Hat, Inc. 
 * Distributed under license by Red Hat, Inc. All rights reserved. 
 * This program is made available under the terms of the 
 * Eclipse Public License v1.0 which accompanies this distribution, 
 * and is available at http://www.eclipse.org/legal/epl-v10.html 
 *
 * Contributors: 
 * Sean Kavanagh - initial API and implementation 
 ******************************************************************************/
package com.openshift.internal.client;

import com.openshift.client.IAuthorization;
import com.openshift.client.OpenShiftException;
import com.openshift.internal.client.httpclient.request.StringParameter;
import com.openshift.internal.client.response.AuthorizationResourceDTO;
import com.openshift.internal.client.utils.IOpenShiftJsonConstants;

/**
 * @author Sean Kavanagh
 * @author Andre Dietisheim
 */
public class AuthorizationResource extends AbstractOpenShiftResource implements IAuthorization {

	private static final String LINK_GET = "GET";
	private static final String LINK_UPDATE = "UPDATE";
	private static final String LINK_DELETE = "DELETE";

	private String id;
	private String note;
	private String scopes;
	private String token;
	private int expiresIn;
	private APIResource api;

	protected AuthorizationResource(final APIResource api, AuthorizationResourceDTO authorizationDTO) {
		super(api.getService(), authorizationDTO.getLinks(), authorizationDTO.getMessages());
		this.api = api;
		this.id = authorizationDTO.getId();
		this.note = authorizationDTO.getNote();
		this.scopes = authorizationDTO.getScopes();
		this.token = authorizationDTO.getToken();
		this.expiresIn = authorizationDTO.getExpiresIn();
	}

	@Override
	public void refresh() throws OpenShiftException {

		final AuthorizationResourceDTO authorizationDTO = new GetAuthorizationRequest().execute();
		this.id = authorizationDTO.getId();

		this.note = authorizationDTO.getNote();

		this.scopes = authorizationDTO.getScopes();
		this.token = authorizationDTO.getToken();
		this.expiresIn = authorizationDTO.getExpiresIn();
	}

	@Override
	public String toString() {
		return "Authorization ["
				+ "id=" + id + ", "
				+ "note=" + note + ", "
				+ "scopes=" + scopes + ", "
				+ "token=" + token + ", "
				+ "expiresIn=" + expiresIn
				+ "]";
	}

	@Override
	public void destroy() throws OpenShiftException {
		new DeleteAuthorizationRequest().execute();
		this.id = null;
		this.note = null;
		this.scopes = null;
		this.token = null;
		this.expiresIn = IAuthorization.NO_EXPIRES_IN;
		api.removeAuthorization();
	}

	@Override
	public String getId() {
		return id;
	}

	@Override
	public String getNote() {
		return note;
	}

	@Override
	public String getScopes() {
		return scopes;
	}

	@Override
	public String getToken() {
		return token;
	}

	@Override
	public int getExpiresIn() {
		return expiresIn;
	}

	private class GetAuthorizationRequest extends ServiceRequest {

		private GetAuthorizationRequest() throws OpenShiftException {
			super(LINK_GET);
		}

		protected AuthorizationResourceDTO execute() throws OpenShiftException {
			return (AuthorizationResourceDTO) super.execute();
		}
	}

	private class DeleteAuthorizationRequest extends ServiceRequest {

		private DeleteAuthorizationRequest() throws OpenShiftException {
			super(LINK_DELETE);
		}

		protected void execute(boolean force) throws OpenShiftException {
			super.execute(new StringParameter(IOpenShiftJsonConstants.PROPERTY_FORCE, String.valueOf(force)));
		}
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy