Package com.cosmicpush.app.domain.clients

Source Code of com.cosmicpush.app.domain.clients.ApiClient

/*
* Copyright (c) 2014 Jacob D. Parr
*
* This software may not be used without permission.
*/

package com.cosmicpush.app.domain.clients;

import com.cosmicpush.pub.internal.CpIdGenerator;
import com.cosmicpush.app.domain.clients.actions.*;
import com.cosmicpush.app.domain.clients.config.*;
import com.cosmicpush.pub.internal.RequestErrors;

public class ApiClient {

  private String apiClientId;

  private String clientName;
  private String clientPassword;

  private String lastMessage;

  private SmtpEmailConfig smtpEmailConfig;
  private AwsEmailConfig awsEmailConfig;
  private GoogleTalkConfig googleTalkConfig;

  public ApiClient() {
  }

  public ApiClient create(CreateClientAction action) {
    action.validate(new RequestErrors()).assertNoErrors();

    this.apiClientId = CpIdGenerator.newId();
    this.clientName = action.getClientName();
    this.clientPassword = action.getClientPassword();

    return this;
  }

  public String getApiClientId() {
    return apiClientId;
  }

  public String getClientName() {
    return clientName;
  }

  public String getClientPassword() {
    return clientPassword;
  }

  public String getLastMessage() {
    return lastMessage;
  }

  public void setLastMessage(String lastMessage) {
    this.lastMessage = lastMessage;
  }

  public void apply(UpdateClientAction action) {
    action.validate(new RequestErrors()).assertNoErrors();

    this.clientName = action.getClientName();
    this.clientPassword = action.getClientPassword();

    this.lastMessage = "API Client configuration changed.";
  }

  public GoogleTalkConfig getGoogleTalkConfig() {
    return googleTalkConfig;
  }
  public void createGoogleTalkConfig(CreateGoogleTalkConfigAction action) {
    googleTalkConfig = new GoogleTalkConfig().create(action);
    lastMessage = "Google Talk configuration updated.";
  }
  public void deleteGoogleTalkConfig() {
    googleTalkConfig = null;
    lastMessage =  "Google Talk configuration deleted.";
  }

  public SmtpEmailConfig getSmtpEmailConfig() {
    return smtpEmailConfig;
  }
  public void apply(CreateSmtpEmailConfigAction action) {
    smtpEmailConfig = new SmtpEmailConfig().create(action);
    lastMessage = "SMTP email configuration updated.";
  }
  public void deleteSmtpEmailConfig() {
    smtpEmailConfig = null;
    lastMessage = "SMTP email configuration deleted.";
  }

  public AwsEmailConfig getAwsEmailConfig() {
    return awsEmailConfig;
  }
  public void apply(CreateAwsEmailConfigAction action) {
    awsEmailConfig = new AwsEmailConfig().create(action);
    lastMessage = "AWS Email configuration updated.";
  }
  public void deleteAwsEmailConfig() {
    awsEmailConfig = null;
    lastMessage = "AWS email configuration deleted.";
  }

  public boolean equals(Object object) {
    if (object instanceof ApiClient) {
      ApiClient that = (ApiClient)object;
      return this.apiClientId.equals(that.apiClientId);
    }
    return false;
  }

  public String toString() {
    return clientName;
  }
}
TOP

Related Classes of com.cosmicpush.app.domain.clients.ApiClient

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.