/** * do a DELETE request to the StackMob platform, with query parameters. * * <p>warning! this has the ability to delete a substantial amount of data in one request. use * with care! * * @param query the query on which to match elements to be deleted * @param callback callback to be called when the server returns. may execute in a separate thread */ public void delete(StackMobQuery query, StackMobRawCallback callback) { new StackMobRequestWithoutPayload( this.executor, this.session, HttpVerbWithoutPayload.DELETE, StackMobOptions.none(), query.getArguments(), query.getObjectName(), callback, this.redirectedCallback) .setUrlFormat(this.host) .sendRequest(); }
/** * do a get request on the StackMob platform * * @param path the path to get * @param callback callback to be called when the server returns. may execute in a separate thread */ public void get(String path, StackMobRawCallback callback) { new StackMobRequestWithoutPayload( this.executor, this.session, HttpVerbWithoutPayload.GET, StackMobOptions.none(), StackMobRequest.EmptyParams, path, callback, this.redirectedCallback) .setUrlFormat(this.host) .sendRequest(); }
/** * do a put request on the StackMob platform * * @param path the path to put * @param id the id of the object to put * @param body the json body * @param callback callback to be called when the server returns. may execute in a separate thread */ public void put(String path, String id, String body, StackMobRawCallback callback) { new StackMobRequestWithPayload( this.executor, this.session, HttpVerbWithPayload.PUT, StackMobOptions.none(), StackMobRequest.EmptyParams, body, path + "/" + id, callback, this.redirectedCallback) .setUrlFormat(this.host) .sendRequest(); }
/** * do a post request on the StackMob platform with a list of objects * * @param path the path to get * @param requestObjects List of objects to serialize and send in the POST body. the list will be * serialized with Gson * @param callback callback to be called when the server returns. may execute in a separate thread */ public <T> void postBulk(String path, List<T> requestObjects, StackMobRawCallback callback) { new StackMobRequestWithPayload( this.executor, this.session, HttpVerbWithPayload.POST, StackMobOptions.none(), StackMobRequest.EmptyParams, requestObjects, path, callback, this.redirectedCallback) .setUrlFormat(this.host) .sendRequest(); }
/** * do a an atomic put request on the StackMob platform with the contents of the has-many relation * * @param path the path to get * @param primaryId id of the object with the relation * @param relatedField name of the relation * @param relatedIds list of ids to atomically add to the relation. The type should be the same * type as the primary key field of the related object * @param callback callback to be called when the server returns. may execute in a separate thread */ public <T> void putRelated( String path, String primaryId, String relatedField, List<T> relatedIds, StackMobRawCallback callback) { new StackMobRequestWithPayload( this.executor, this.session, HttpVerbWithPayload.PUT, StackMobOptions.none(), StackMobRequest.EmptyParams, relatedIds, String.format("%s/%s/%s", path, primaryId, relatedField), callback, this.redirectedCallback) .setUrlFormat(this.host) .sendRequest(); }