Skip to content

Commit 4cd702f

Browse files
committed
增加stat和accout处理
1 parent 67ceae4 commit 4cd702f

3 files changed

Lines changed: 212 additions & 0 deletions

File tree

src/main/java/com/javabaas/javasdk/JBApp.java

Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.javabaas.javasdk.callback.*;
44

5+
import java.text.SimpleDateFormat;
56
import java.util.*;
67

78
/**
@@ -380,6 +381,113 @@ public void onFailure(JBException error) {
380381
});
381382
}
382383

384+
public static List<Long> getApiStat(JBApiStat apiStat) throws JBException {
385+
final List<Long>[] result = new List[]{null};
386+
getApiStatFromJavabaas(true, apiStat, new JBApiStatListCallback() {
387+
@Override
388+
public void done(boolean success, List<Long> list, JBException e) {
389+
if (success) {
390+
result[0] = list;
391+
} else {
392+
JBExceptionHolder.add(e);
393+
}
394+
}
395+
});
396+
if (JBExceptionHolder.exists()) {
397+
throw JBExceptionHolder.remove();
398+
}
399+
return result[0];
400+
}
401+
402+
public static void getApiStatInBackground(JBApiStat apiStat, JBApiStatListCallback callback) {
403+
getApiStatFromJavabaas(false, apiStat, callback);
404+
}
405+
406+
private static void getApiStatFromJavabaas(final boolean sync, final JBApiStat apiStat, final JBApiStatListCallback callback) {
407+
String path = JBHttpClient.getApiStatPath();
408+
JBHttpParams params = getParamsFromApiStat(apiStat);
409+
410+
JBHttpClient.INSTANCE().sendRequest(path, JBHttpMethod.GET, params, null, sync, new JBObjectCallback() {
411+
@Override
412+
public void onSuccess(JBResult result) {
413+
List<Long> list = getApiStatListFromMap(result.getData());
414+
if (callback != null) {
415+
callback.done(true, list, null);
416+
}
417+
}
418+
419+
@Override
420+
public void onFailure(JBException error) {
421+
if (callback != null) {
422+
callback.done(false, null, error);
423+
}
424+
}
425+
});
426+
}
427+
428+
public static void setAccount(AccountType type, Account account) throws JBException {
429+
setAccountToJavabaas(true, type, account, new JBSaveCallback() {
430+
@Override
431+
public void done(boolean success, JBException e) {
432+
if (!success) {
433+
JBExceptionHolder.add(e);
434+
}
435+
}
436+
});
437+
if (JBExceptionHolder.exists()) {
438+
throw JBExceptionHolder.remove();
439+
}
440+
}
441+
442+
public static void setAccountInBackground(AccountType type, Account account, JBSaveCallback callback) {
443+
setAccountToJavabaas(false, type, account, callback);
444+
}
445+
446+
private static void setAccountToJavabaas(final boolean sync, final AccountType type, final Account account, final JBSaveCallback callback) {
447+
String path = JBHttpClient.getAccountPath(type.getCode());
448+
JBHttpClient.INSTANCE().sendRequest(path, JBHttpMethod.PUT, null, account, sync, new JBObjectCallback() {
449+
@Override
450+
public void onFailure(JBException error) {
451+
if (callback != null) {
452+
callback.done(false, error);
453+
}
454+
}
455+
456+
@Override
457+
public void onSuccess(JBResult result) {
458+
if (callback != null) {
459+
callback.done(true, null);
460+
}
461+
}
462+
});
463+
}
464+
465+
private static List<Long> getApiStatListFromMap(Map<String, Object> map) {
466+
if (map == null || map.get("result") == null) {return new LinkedList<>();}
467+
List<Long> list = (List<Long>) map.get("result");
468+
return list;
469+
}
470+
471+
private static JBHttpParams getParamsFromApiStat(JBApiStat apiStat) {
472+
JBHttpParams params = new JBHttpParams();
473+
if (!JBUtils.isEmpty(apiStat.getClazz())) {
474+
params.put("clazz", apiStat.getClazz());
475+
}
476+
if (apiStat.getMethod() != null && !JBUtils.isEmpty(apiStat.getMethod().value)) {
477+
params.put("method", apiStat.getMethod().value);
478+
}
479+
if (!JBUtils.isEmpty(apiStat.getPlat())) {
480+
params.put("plat", apiStat.getPlat());
481+
}
482+
if (!JBUtils.isEmpty(apiStat.getFrom())) {
483+
params.put("from", apiStat.getFrom());
484+
}
485+
if (!JBUtils.isEmpty(apiStat.getTo())) {
486+
params.put("to", apiStat.getTo());
487+
}
488+
return params;
489+
}
490+
383491
private static JBAppExport getAppExportFromMap(Map<String, Object> map) {
384492
String exportStr = JBUtils.writeValueAsString(map);
385493
JBAppExport appExport = JBUtils.readValue(exportStr, JBAppExport.class);
@@ -703,4 +811,88 @@ public void setAppAccounts(AppAccounts appAccounts) {
703811
}
704812
}
705813

814+
public static class JBApiStat {
815+
private String plat;
816+
private String clazz;
817+
private JBApiMethod method;
818+
private String from;
819+
private String to;
820+
821+
public JBApiStat(String plat, String clazz, JBApiMethod method, String from, String to) {
822+
this.plat = plat;
823+
this.clazz = clazz;
824+
this.method = method;
825+
this.from = from;
826+
this.to = to;
827+
}
828+
829+
public JBApiMethod getMethod() {
830+
return method;
831+
}
832+
833+
public void setMethod(JBApiMethod method) {
834+
this.method = method;
835+
}
836+
837+
public String getPlat() {
838+
return plat;
839+
}
840+
841+
public void setPlat(String plat) {
842+
this.plat = plat;
843+
}
844+
845+
public String getClazz() {
846+
return clazz;
847+
}
848+
849+
public void setClazz(String clazz) {
850+
this.clazz = clazz;
851+
}
852+
853+
public String getFrom() {
854+
return from;
855+
}
856+
857+
public void setFrom(String from) {
858+
this.from = from;
859+
}
860+
861+
public String getTo() {
862+
return to;
863+
}
864+
865+
public void setTo(String to) {
866+
this.to = to;
867+
}
868+
}
869+
870+
public static enum JBApiMethod {
871+
872+
INSERT("insert"),
873+
UPDATE("update"),
874+
FIND("find"),
875+
DELETE("delete");
876+
877+
private String value;
878+
879+
JBApiMethod(String value) {
880+
this.value = value;
881+
}
882+
883+
@Override
884+
public String toString() {
885+
return value;
886+
}
887+
888+
public static JBApiMethod get(String value) {
889+
JBApiMethod[] methods = JBApiMethod.class.getEnumConstants();
890+
for (JBApiMethod method : methods) {
891+
if (method.value.equals(value)) {
892+
return method;
893+
}
894+
}
895+
return null;
896+
}
897+
}
706898
}

src/main/java/com/javabaas/javasdk/JBHttpClient.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,14 @@ public static String getFieldPath(String className, String extra) {
160160
return getPath("master/clazz/" + className + "/field", extra);
161161
}
162162

163+
public static String getApiStatPath() {
164+
return getPath("master/apiStat", null);
165+
}
166+
167+
public static String getAccountPath(int type) {
168+
return getPath("master/account/setAccount", String.valueOf(type));
169+
}
170+
163171
private static String getPath(String domain, String extra) {
164172
StringBuffer urlPath = new StringBuffer(JBConfig.getInstance().remote);
165173
if (JBUtils.isEmpty(domain)) {
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.javabaas.javasdk.callback;
2+
3+
import com.javabaas.javasdk.JBException;
4+
5+
import java.util.List;
6+
7+
/**
8+
* Created by zangyilin on 2017/10/13.
9+
*/
10+
public abstract class JBApiStatListCallback {
11+
public abstract void done(boolean success, List<Long> list, JBException e);
12+
}

0 commit comments

Comments
 (0)