Библиотека интеграции с zenmoney.ru
версия: 0.1 (Скачать jar)
На данный момент поддерживает:
- Создание БД со структурой, достаточной для добавления/редактирования транзакций, категорий, счетов
- Синхронизацию валют
- Синхронизацию БД через /v2/sync
- commons-codec-1.7
- httpcore-4.2.3
- jackson-core-2.1.4
- pojava-2.8.1
- scribe OAuth
ZenmoneyApi.setApplicationToken(this, APP_KEY, APP_SECRET);Если необходимо использовать дополнительные таблицы, создайте массив SQL-запросов (как в этом классе) и передайте его методу DatabaseHelper.setStructure перед инициализацией библиотеки
public class AuthActivity extends ru.zenmoney.library.api.AuthActivity {
@Override
protected void onComplete(Token consumer) {
Utils.message(this, "Auth OK! %)");
OAuthSettings settings = new OAuthSettings(this);
settings.setToken(consumer);
Intent i = new Intent(this, StartActivity.class);
startActivity(i);
finish();
}
@Override
protected void onError(Token requestToken, String url, Throwable error) {
Log.e("auth", "Auth failed", error);
Utils.alert(this, "Auth failed", error.getMessage());
Intent i = new Intent(this, StartActivity.class);
startActivity(i);
finish();
}
@Override
protected void onRequestDeclined() {
Utils.message(this, "Auth declined");
Intent i = new Intent(this, StartActivity.class);
startActivity(i);
finish();
}
} Class<? extends AbstractModel>[] structure = new Class[]{
User.class,
Account.class,
Connection.class,
ConnectionData.class,
Tag.class,
TagGroup.class,
Transaction.class,
TransactionTag.class,
// InstrumentRate.class
};
ZenmoneyApi.sync(structure); Account account = new Account();
account.put("title", "Первый счет");
account.put("instrument", 2l);
account.put("balance", BigDecimal.ZERO);
account.put("type", "cash");
account.save();
Transaction transaction = new Transaction();
transaction.put("account_income", account.getKey());
transaction.put("account_outcome", account.getKey());
transaction.put("income", new BigDecimal("1000000"));
transaction.put("outcome", BigDecimal.ZERO);
transaction.put("comment", "Я миллионер!");
transaction.save(); RowSet transactions = new RowSet(Transaction.class);
RowSet.addQueryResult("account_income = ?", new String[] {"1"}); Transaction transaction = new Transaction();
transaction.loadByKey(1); Cursor c = DatabaseHelper.getWritableConnection().rawQuery("SELECT * FROM `transaction` WHERE _id = 1");
Transaction transaction = new Transaction(c); Transaction transaction = new Transaction();
transaction.loadByKey(1);
transaction.delete(); RowSet transactions = new RowSet(Transaction.class);
RowSet.addQueryResult("account_income = ?", new String[] {"1"});
rowset.delete();