You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
1.6 KiB
67 lines
1.6 KiB
package org.n0m.pawsqlite; |
|
|
|
import android.util.Log; |
|
|
|
import org.apache.cordova.CordovaPlugin; |
|
import org.apache.cordova.CallbackContext; |
|
|
|
import org.json.JSONArray; |
|
import org.json.JSONException; |
|
import org.json.JSONObject; |
|
|
|
|
|
public class PawSQLite extends CordovaPlugin { |
|
private static final String TAG = "PawSQLite"; |
|
|
|
DBManager dbManager; |
|
|
|
@Override |
|
protected void pluginInitialize() { |
|
Log.d(TAG, "Initialized Plugin"); |
|
this.dbManager = new DBManager(this.cordova); |
|
} |
|
|
|
@Override |
|
public boolean execute(String actionStr, JSONArray args, CallbackContext callbackContext) throws JSONException { |
|
CallbackWrapper callback = new CallbackWrapper(callbackContext); |
|
|
|
// Get Action |
|
DBAction action; |
|
try { |
|
action = DBAction.valueOf(actionStr.toUpperCase()); |
|
} catch (IllegalArgumentException e) { |
|
return false; |
|
} |
|
|
|
// Get DB Name |
|
String dbName = args.optString(0).trim(); |
|
|
|
if (dbName.isEmpty()) { |
|
callback.error( |
|
"Unknown Database", |
|
"Database name not included in request" |
|
); |
|
return true; |
|
} |
|
|
|
// Remove dbName so that remaining args can be handled appropriately |
|
args.remove(0); |
|
|
|
// Queue request |
|
DBRequest request = new DBRequest(action, args, callback); |
|
dbManager.queueRequest(dbName, request); |
|
|
|
return true; |
|
} |
|
|
|
private JSONObject jsonError(String name, String message) throws JSONException { |
|
JSONObject response = new JSONObject(); |
|
|
|
JSONObject error = new JSONObject(); |
|
error.put("name", name); |
|
error.put("message", message); |
|
response.put("error", error); |
|
|
|
return response; |
|
} |
|
}
|
|
|