Package com.openshift.internal.client

Source Code of com.openshift.internal.client.AuthorizationResource$DeleteAuthorizationRequest

/*******************************************************************************
* 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)));
    }
  }

}
TOP

Related Classes of com.openshift.internal.client.AuthorizationResource$DeleteAuthorizationRequest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.