com.jelastic.api.development.persistence.ApiToken Maven / Gradle / Ivy
The newest version!
package com.jelastic.api.development.persistence;
import com.jelastic.api.core.utils.DateUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.Serializable;
import java.util.Date;
import java.util.HashSet;
import java.util.Set;
import java.text.ParseException;
/**
* @author Dima Hutsalo
*/
public class ApiToken implements Serializable {
public static final String ID = "id";
public static final String TOKEN = "key";
public static final String API_LIST = "apiList";
public static final String EXPIRES_AT = "expiresAt";
public static final String DESCRIPTION = "description";
private static final String TOKEN_TEMPLATE = "tokenTemplate";
private static final String CREATED_ON = "createdOn";
private static final String LAST_USED = "lastUsed";
private Integer id;
private String token;
private User user;
private Set permissions = new HashSet<>();
private Date validTill;
private Date expiresAt;
private String description;
private String tokenTemplate;
private Date createdOn;
private Date lastUsed;
public ApiToken(String token, User user, Set permissions) {
this.token = token;
this.user = user;
this.permissions = permissions;
}
public ApiToken() {
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
public Set getPermissions() {
return permissions;
}
public void setPermissions(Set permissions) {
this.permissions = permissions;
}
public Date getValidTill() {
return validTill;
}
public void setValidTill(Date validTill) {
this.validTill = validTill;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Date getExpiresAt() {
return expiresAt;
}
public void setExpiresAt(Date expiresAt) {
this.expiresAt = expiresAt;
}
public String getTokenTemplate() {
return tokenTemplate;
}
public void setTokenTemplate(String tokenTemplate) {
this.tokenTemplate = tokenTemplate;
}
public Date getCreatedOn() {
return createdOn;
}
public void setCreatedOn(Date createdOn) {
this.createdOn = createdOn;
}
public Date getLastUsed() {
return lastUsed;
}
public void setLastUsed(Date lastUsed) {
this.lastUsed = lastUsed;
}
public JSONObject toJSON() {
JSONObject json = new JSONObject();
try {
json.put(ID, this.getId());
if (tokenTemplate != null) {
json.put(TOKEN_TEMPLATE, tokenTemplate);
}
if (getPermissions() != null) {
JSONArray permissionsJson = new JSONArray();
for (ApiTokenPermission apiListItem : getPermissions()) {
permissionsJson.put(apiListItem);
}
json.put(API_LIST, permissionsJson);
}
if (expiresAt != null) {
json.put(EXPIRES_AT, DateUtils.formatSqlDateTime(expiresAt));
}
if (description != null) {
json.put(DESCRIPTION, description);
}
if (createdOn != null) {
json.put(CREATED_ON, DateUtils.formatSqlDateTime(createdOn));
}
if (lastUsed != null) {
json.put(LAST_USED, DateUtils.formatSqlDateTime(lastUsed));
}
} catch (JSONException e) {
e.printStackTrace();
}
return json;
}
public ApiToken _fromJSON(JSONObject json) throws JSONException {
if (json.has(ID)) {
this.setId(json.getInt(ID));
}
if (json.has(TOKEN_TEMPLATE)) {
this.setTokenTemplate(json.getString(TOKEN_TEMPLATE));
}
if (json.has(API_LIST)) {
JSONArray permissionsJson = json.getJSONArray(API_LIST);
for(int i = 0; i < permissionsJson.length(); i++){
permissions.add(new ApiTokenPermission(permissionsJson.getString(i)));
}
}
if (json.has(EXPIRES_AT)) {
try {
this.setExpiresAt(DateUtils.parseSqlDateTime(json.getString(EXPIRES_AT)));
} catch (ParseException e) {
e.printStackTrace();
}
}
if (json.has(DESCRIPTION)) {
this.setDescription(json.getString(DESCRIPTION));
}
if (json.has(CREATED_ON)) {
try {
this.setCreatedOn(DateUtils.parseSqlDateTime(json.getString(CREATED_ON)));
} catch (ParseException e) {
e.printStackTrace();
}
}
if (json.has(LAST_USED)) {
try {
this.setLastUsed(DateUtils.parseSqlDateTime(json.getString(LAST_USED)));
} catch (ParseException e) {
e.printStackTrace();
}
}
return this;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy