Created ApiRequest
Complete the apiGenerator for import account
This commit is contained in:
parent
1c341ce27b
commit
701aeb8b38
3 changed files with 180 additions and 19 deletions
|
@ -0,0 +1,33 @@
|
||||||
|
package cy.agorise.crystalwallet.apigenerator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by henry on 27/9/2017.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class ApiRequest {
|
||||||
|
|
||||||
|
int id;
|
||||||
|
|
||||||
|
ApiRequestListener listener;
|
||||||
|
|
||||||
|
public ApiRequest(int id, ApiRequestListener listener) {
|
||||||
|
this.id = id;
|
||||||
|
this.listener = listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ApiRequestListener getListener() {
|
||||||
|
return listener;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setListener(ApiRequestListener listener) {
|
||||||
|
this.listener = listener;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,12 @@
|
||||||
|
package cy.agorise.crystalwallet.apigenerator;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by henry on 27/9/2017.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public interface ApiRequestListener {
|
||||||
|
|
||||||
|
public void success(Object answer, int idPetition);
|
||||||
|
public void fail(int idPetition);
|
||||||
|
|
||||||
|
}
|
|
@ -1,9 +1,24 @@
|
||||||
package cy.agorise.crystalwallet.apigenerator;
|
package cy.agorise.crystalwallet.apigenerator;
|
||||||
|
|
||||||
|
import com.neovisionaries.ws.client.WebSocket;
|
||||||
|
import com.neovisionaries.ws.client.WebSocketException;
|
||||||
|
import com.neovisionaries.ws.client.WebSocketFactory;
|
||||||
|
|
||||||
|
import cy.agorise.graphenej.Address;
|
||||||
|
import cy.agorise.graphenej.UserAccount;
|
||||||
|
import cy.agorise.graphenej.api.GetAccounts;
|
||||||
|
import cy.agorise.graphenej.api.GetKeyReferences;
|
||||||
|
import cy.agorise.graphenej.api.GetRelativeAccountHistory;
|
||||||
|
import cy.agorise.graphenej.interfaces.WitnessResponseListener;
|
||||||
|
import cy.agorise.graphenej.models.AccountProperties;
|
||||||
|
import cy.agorise.graphenej.models.BaseResponse;
|
||||||
|
import cy.agorise.graphenej.models.HistoricalTransfer;
|
||||||
|
import cy.agorise.graphenej.models.WitnessResponse;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import cy.agorise.crystalwallet.models.GrapheneAccount;
|
|
||||||
import cy.agorise.graphenej.models.HistoricalTransfer;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Created by henry on 26/9/2017.
|
* Created by henry on 26/9/2017.
|
||||||
|
@ -11,50 +26,151 @@ import cy.agorise.graphenej.models.HistoricalTransfer;
|
||||||
|
|
||||||
public class GrapheneApiGenerator {
|
public class GrapheneApiGenerator {
|
||||||
|
|
||||||
|
//TODO network connections
|
||||||
|
private static int connectionTimeout = 5000;
|
||||||
|
private static String url = "http://128.0.69.157:8090"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Retrieves the data of an account searching by it's id
|
* Retrieves the data of an account searching by it's id
|
||||||
*
|
*
|
||||||
* @param accountId The accountId to retrieve
|
* @param accountId The accountId to retrieve
|
||||||
* @return The Account properties retrieved from the net, or null if fails
|
* @param request The Api request object, to answer this petition
|
||||||
*/
|
*/
|
||||||
public GrapheneAccount getAccountById(String accountId){
|
public static void getAccountById(String accountId, final ApiRequest request){
|
||||||
//TODO implement
|
WebSocketFactory factory = new WebSocketFactory().setConnectionTimeout(connectionTimeout);
|
||||||
return null;
|
try {
|
||||||
|
final WebSocket webSocket = factory.createSocket(url);
|
||||||
|
webSocket.addListener(new GetAccounts(accountId, new WitnessResponseListener() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(WitnessResponse response) {
|
||||||
|
if (response.result.getClass() == ArrayList.class) {
|
||||||
|
List list = (List) response.result;
|
||||||
|
if (list.size() > 0) {
|
||||||
|
if (list.get(0).getClass() == AccountProperties.class) {
|
||||||
|
request.getListener().success(list.get(0),request.getId());
|
||||||
|
//TODO answer a crystal model
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
request.getListener().fail(request.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(BaseResponse.Error error) {
|
||||||
|
request.getListener().fail(request.getId());
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
Thread thread = new Thread(){
|
||||||
|
public void run(){
|
||||||
|
try {
|
||||||
|
webSocket.connect();
|
||||||
|
} catch (WebSocketException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
request.getListener().fail(request.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
thread.start();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
request.getListener().fail(request.getId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the account ID from an owner or active key
|
* Gets the account ID from an owner or active key
|
||||||
*
|
*
|
||||||
* @param address The address to retrieve
|
* @param address The address to retrieve
|
||||||
* @return The id of the account, of null
|
* @param request The Api request object, to answer this petition
|
||||||
*/
|
*/
|
||||||
public String getAccountByOwnerOrActiveAddress(String address){
|
public static void getAccountByOwnerOrActiveAddress(Address address, final ApiRequest request){
|
||||||
//TODO implement
|
//TODO change address
|
||||||
return null;
|
WebSocketFactory factory = new WebSocketFactory().setConnectionTimeout(connectionTimeout);
|
||||||
|
try {
|
||||||
|
final WebSocket webSocket = factory.createSocket(url);
|
||||||
|
webSocket.addListener(new GetKeyReferences(address, true, new WitnessResponseListener() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(WitnessResponse response) {
|
||||||
|
final List<List<UserAccount>> resp = (List<List<UserAccount>>) response.result;
|
||||||
|
if(resp.size() > 0){
|
||||||
|
List<UserAccount> accounts = resp.get(0);
|
||||||
|
if(accounts.size() > 0){
|
||||||
|
for(UserAccount account : accounts) {
|
||||||
|
request.getListener().success(account,request.getId());}}}
|
||||||
|
request.getListener().fail(request.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(BaseResponse.Error error) {
|
||||||
|
request.getListener().fail(request.getId());
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
Thread thread = new Thread(){
|
||||||
|
public void run(){
|
||||||
|
try {
|
||||||
|
webSocket.connect();
|
||||||
|
} catch (WebSocketException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
request.getListener().fail(request.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
thread.start();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
request.getListener().fail(request.getId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the Transaction for an Account
|
* Gets the Transaction for an Account
|
||||||
*
|
*
|
||||||
* @param accountId The account id to search
|
* @param accountId The account id to search
|
||||||
* @param start The start index of the transaction list
|
* @param start The start index of the transaction list
|
||||||
* @param stop The stop index of the transaction list
|
* @param stop The stop index of the transaction list
|
||||||
* @param limit the maximun transactions to retrieve
|
* @param limit the maximun transactions to retrieve
|
||||||
* @return The list of trnsaction of the account, or null if the call fail
|
* @param request The Api request object, to answer this petition
|
||||||
*/
|
*/
|
||||||
public List<HistoricalTransfer> getAccountTransaction(String accountId, int start, int stop, int limit){
|
public static void getAccountTransaction(String accountId, int start, int stop, int limit, final ApiRequest request){
|
||||||
//TODO implement
|
WebSocketFactory factory = new WebSocketFactory().setConnectionTimeout(connectionTimeout);
|
||||||
return null;
|
try {
|
||||||
|
final WebSocket webSocket = factory.createSocket(url);
|
||||||
|
webSocket.addListener(new GetRelativeAccountHistory(new UserAccount(accountId), stop, limit, start, new WitnessResponseListener() {
|
||||||
|
@Override
|
||||||
|
public void onSuccess(WitnessResponse response) {
|
||||||
|
WitnessResponse<List<HistoricalTransfer>> resp = response;
|
||||||
|
request.getListener().success(resp,request.getId());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onError(BaseResponse.Error error) {
|
||||||
|
request.getListener().fail(request.getId());
|
||||||
|
}
|
||||||
|
}));
|
||||||
|
Thread thread = new Thread(){
|
||||||
|
public void run(){
|
||||||
|
try {
|
||||||
|
webSocket.connect();
|
||||||
|
} catch (WebSocketException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
request.getListener().fail(request.getId());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
thread.start();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
request.getListener().fail(request.getId());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns if an Account Name is avaible to be used for a new account
|
* Gets if an Account Name is avaible to be used for a new account
|
||||||
*
|
*
|
||||||
* @param accountName The account Name to find
|
* @param accountName The account Name to find
|
||||||
* @return If the account name isn't used in any bitshares account
|
* @param request The Api request object, to answer this petition
|
||||||
*/
|
*/
|
||||||
public boolean isAccountNameAvaible(String accountName){
|
public static void isAccountNameAvaible(String accountName, ApiRequest request){
|
||||||
//TODO implement
|
//TODO implement
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue