Giter Site home page Giter Site logo

mambu-apis-java's Introduction

Mambu Java Client repository is archived

Please be aware that the Mambu Java Client repository has been archived because is not maintained anymore, it won't benefit by latest updates in terms of functionality and security patches. Repository will become read-only together will all pull requests. The only source of documentation and specifications for API is https://api.mambu.com/.

Mambu Java Client

The Mambu Java Client library is an open source library to interact with Mambu's APIs from your Java project. The library interacts with Mambu's REST APIs.

Using the original class files from the Mambu project, the library allows you to easily interact with Mambu via the APIs to retrieve and store information.

The library is continuously updated each time new functionalities are added to the Mambu's REST APIs and it is released once with the main Mambu product.

Usage

To use the Mambu Java API Wrapper, please include the following jars in your build path

  • build/Mambu-APIs-Java-9.8-bin.jar
  • build/Mambu-APIs-Java-9.8-bin-sources.jar
  • lib/mambu-models-V9.6.jar
  • further dependencies to run and test (see pom.xml for versions)
  • httpclient
  • httpcore
  • gson
  • commons-io
  • commons-codec
  • commons-logging
  • google-collect
  • jdo-api
  • guice
  • datanucleus-core

There is a list of services which are provided through a factory. The list will be updated constantly and currently contains:

  • AccountingService
  • ActivitiesService
  • ClientsService
  • CommentsService
  • CustomFieldValueService
  • CustomViewsService
  • DatabaseService
  • DocumentsService
  • DocumentTemplatesService
  • IntelligenceService
  • LinesOfCreditService
  • LoansService
  • NotificationsService
  • OrganizationService
  • RepaymentsService
  • SavingsService
  • SearchService
  • TasksService
  • UsersService

To use the factory, some date must be provided in order to set it up:

MambuAPIServiceFactory serviceFactory = MambuAPIServiceFactory.getFactory(
	"mydomain.mambu.com", "username", "password");
	
	OR
	
MambuAPIServiceFactory serviceFactory = MambuAPIServiceFactory.getFactory(
	"mydomain.mambu.com", "username", "password", "user agent header value");
	
	OR

MambuAPIServiceFactory serviceFactory = MambuAPIServiceFactory.getFactoryWithApiKey(
	"mydomain.mambu.com", "DiiCtz7KgQnOi6vdkP1aRw9dCbseINot", "user agent header value");	

After this step, each service can be taken through a simple call like:

ClientService clientService = serviceFactory.getClientService();

See the classes from demo package for a few more examples of using the library

Or check out the javadocs here: http://mambu-gmbh.github.io/Mambu-APIs-Java/

Contributing to the Project

This is a community project and we'd love if you can contribute to make the Mambu API wrapper for Java better.

The project uses Maven for the build process. To make contributions to the project, fork it on GitHub, checkout the project and import it into Eclipse (or your favourite Java IDE) as a Maven 2 project.

Ensure to write JUnit tests for all contributions and rerun all existing tests (under /test) to ensure a high code quality.

When you're done with your changes, commit and push them to your GitHub fork and create a pull request so that we can review your code and incorporate the changes.

The Mambu team updates the Mambu models jar to account for changes in new releases as needed.

mambu-apis-java's People

Contributors

acostros avatar ajitarasu avatar alburlacu avatar alinb avatar dependabot[bot] avatar emanuelvasilegresnu avatar eugened avatar florinparascan avatar fredpfi avatar georgeghimici avatar ipenciuc avatar lpinkowski avatar mdanilkis avatar roberto8080 avatar snehrlinger avatar techdot avatar thobach avatar vgoldin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mambu-apis-java's Issues

Get logs from the library

Hi, i would like to log all the calls that are made by your library in my integration tests - what is the best way to do that? Right now, when i try to make some calls with library - i don't see any logging in the console. Is there a way i could intercept logs and append it to my logger ?

v6.0 model jar name

the name of the jar for the new v6 models is not consistent with the previous naming scheme, missing the minor version:
v4: mambu-models-V4.6.jar
v5: mambu-models-V5.0.jar
v6: mambu-models-V6.jar

The README also seems to expect mambu-models-V6.0.jar.

Making sources available in build folder

Hi Guys,

Currently when you build the application it generates a sources.jar in the target folder (ex: Mambu-APIs-Java-4.3-bin-sources.jar), could you make this available in build folder every time a new version is released please.

Most of the IDEs decompile class files so we might actually don't need the sources, but the problem is when you want to search for certain string in libraries they just ignore the libraries those don't have sources attached (explicitly)!

Thanks

Make Mambu API Factory Multi-Tenant Capable

The MambuAPIFactory is implemented as a singleton which makes it hard to use in multi-tenant applications.

A new factory class is needed with a factory method that returns a tenant-specific factory instance which binds a new MambuAPIModule (with the tenant-specific credentials) for every tenant, instead of calling a setup method, which sets the credentials globally in the singleton MambuAPIFactory.

License

There is no information about the license of this API.

More transaction types not supported

Hi guys,
we use version 9.3.

Is possible to extend LoanService.executeJSONTransactionRequest with another transaction types?
Concretly, for this moment we need to execute transaction with type LoanTransactionType.INTEREST_APPLIED.
When looking at this method we see that only five ones are supported:
DISBURSMENT,FEE,REPAYMENT,INTEREST_RATE_CHANGED,PAYMENT_MADE

thanks

CloudQuery Source Plugin?

Hi Team, hopefully this is right place to ask, if not, I'd appreciate if you can direct me.

I'm the founder of cloudquery.io, a high performance open source ELT framework.

Our users are interested in a Mambu plugin, but as we cannot maintain all the plugins ourselves, I was curious if this would be an interesting collaboration, where we would help implement an initial source plugin, and you will help maintain it.

This will give your users the ability to sync Mambu data to any of their datalakes/data-warehouses/databases easily using any of the growing list of CQ destination plugins.

Best,
Yevgeny

Problems with using libraries in gradle project

Hi,

I was trying to incorporate your libraries in my test project in order to write some integration tests. Here's what i did :

  1. I have downloaded
Mambu-APIs-Java-6.0-bin-sources.jar
Mambu-APIs-Java-6.0-bin.jar
mambu-models-V6.0.jar
  1. I have deployed them to our internal Nexus :
mvn deploy:deploy-file -DgroupId=Mambu-APIs-Java -DartifactId=Mambu-APIs-Java -Dversion=6.0-bin -Dpackaging=jar -Dfile=Mambu-APIs-Java-6.0-bin.jar -Dfile=Mambu-APIs-Java-6.0-bin-sources.jar -DgeneratePom=true -DrepositoryId=releases -Durl=https://{nexus.url}/repository/maven-releases/
mvn deploy:deploy-file -DgroupId=com.mambu -DartifactId=mambumodels -Dversion=6 -Dpackaging=jar -Dfile=mambu-models-V6.0.jar -DgeneratePom=true -DrepositoryId=releases -Durl=https://nexus.url/repository/maven-releases/

In my build.gradle file I have added next dependencies :

compile group: 'Mambu-APIs-Java', name: 'Mambu-APIs-Java', version: '6.0-bin'
compile group: 'com.mambu', name: 'mambumodels', version: '6'

However, when I try to do something like this :

MambuAPIServiceFactory serviceFactory = MambuAPIServiceFactory.getFactory(
	"mydomain.mambu.com", "username", "password");

I see that MambuAPIServiceFactory cannot be found.

How should I properly include your libraries into my project?

SDK Settings - request "retry" policy?

Hi guys,

Is there a possibility to configure some sort of a retry policy when using the SDK, we are experiencing connectivity issues from time to time.

Thanks :-)

Savings Products update method

Is it possible to create a method to update the a savings product definition? I haven't found any endpoint for this on the REST API documentation

Build fails on jdk 11

Build fails on jdk 11

[INFO] Scanning for projects...
[WARNING] 
[WARNING] Some problems were encountered while building the effective model for Mambu-APIs-Java:Mambu-APIs-Java:jar:9.8-bin
[WARNING] 'dependencies.dependency.systemPath' for com.mambu:mambumodels:jar should not point at files within the project directory, ${project.basedir}/lib/mambu-models-V9.6.jar will be unresolvable by dependent projects @ line 141, column 16
[WARNING] 
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING] 
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.
[WARNING] 
[INFO] 
[INFO] ------------------< Mambu-APIs-Java:Mambu-APIs-Java >-------------------
[INFO] Building Mambu Java APIs SDK 9.8-bin
[INFO] --------------------------------[ jar ]---------------------------------
[WARNING] The artifact org.apache.commons:commons-io:jar:1.3.2 has been relocated to commons-io:commons-io:jar:1.3.2: https://issues.sonatype.org/browse/MVNCENTRAL-244
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ Mambu-APIs-Java ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 4 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.2:compile (default-compile) @ Mambu-APIs-Java ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ Mambu-APIs-Java ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /Users/guest/workspaces/Mambu-APIs-Java/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.2:testCompile (default-testCompile) @ Mambu-APIs-Java ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ Mambu-APIs-Java ---
[INFO] Surefire report directory:/Users/guest/workspaces/Mambu-APIs-Java/target/surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.mambu.apisdk.util.RequestExecutorImplTest
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.mockito.cglib.core.ReflectUtils$2 (file:/Users/guest/.m2/repository/org/mockito/mockito-all/1.10.19/mockito-all-1.10.19.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of org.mockito.cglib.core.ReflectUtils$2
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.159 sec
Running com.mambu.apisdk.MambuAPIFactoryTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.022 sec <<< FAILURE!
initializationError(com.mambu.apisdk.MambuAPIFactoryTest)  Time elapsed: 0.002 sec  <<< ERROR!
org.objenesis.ObjenesisException: java.lang.reflect.InvocationTargetException
	at org.objenesis.instantiator.sun.SunReflectionFactoryHelper.newConstructorForSerialization(SunReflectionFactoryHelper.java:55)
	at org.objenesis.instantiator.sun.SunReflectionFactoryInstantiator.<init>(SunReflectionFactoryInstantiator.java:38)
	at org.objenesis.strategy.StdInstantiatorStrategy.newInstantiatorOf(StdInstantiatorStrategy.java:58)
	at org.objenesis.ObjenesisBase.getInstantiatorOf(ObjenesisBase.java:91)
	at org.powermock.reflect.internal.WhiteboxImpl.newInstance(WhiteboxImpl.java:222)
	at org.powermock.reflect.Whitebox.newInstance(Whitebox.java:139)
	at org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.registerProxyframework(AbstractTestSuiteChunkerImpl.java:158)
	at org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.chunkClass(AbstractTestSuiteChunkerImpl.java:181)
	at org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.<init>(AbstractTestSuiteChunkerImpl.java:96)
	at org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.<init>(AbstractTestSuiteChunkerImpl.java:89)
	at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.<init>(JUnit4TestSuiteChunkerImpl.java:49)
	at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.<init>(AbstractCommonPowerMockRunner.java:32)
	at org.powermock.modules.junit4.PowerMockRunner.<init>(PowerMockRunner.java:34)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
	at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
	at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
	at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
	at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
	at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:250)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.objenesis.instantiator.sun.SunReflectionFactoryHelper.newConstructorForSerialization(SunReflectionFactoryHelper.java:45)
	... 34 more
Caused by: java.lang.IllegalAccessError: class jdk.internal.reflect.ConstructorAccessorImpl loaded by org.powermock.core.classloader.MockClassLoader @6574a52c cannot access jdk/internal/reflect superclass jdk.internal.reflect.MagicAccessorImpl
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
	at org.powermock.core.classloader.MockClassLoader.loadUnmockedClass(MockClassLoader.java:238)
	at org.powermock.core.classloader.MockClassLoader.loadModifiedClass(MockClassLoader.java:182)
	at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:70)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
	at org.powermock.core.classloader.MockClassLoader.loadUnmockedClass(MockClassLoader.java:238)
	at org.powermock.core.classloader.MockClassLoader.loadModifiedClass(MockClassLoader.java:182)
	at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:70)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	at java.base/jdk.internal.misc.Unsafe.defineClass0(Native Method)
	at java.base/jdk.internal.misc.Unsafe.defineClass(Unsafe.java:1192)
	at java.base/jdk.internal.reflect.ClassDefiner.defineClass(ClassDefiner.java:63)
	at java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:400)
	at java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/jdk.internal.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:393)
	at java.base/jdk.internal.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:112)
	at java.base/jdk.internal.reflect.ReflectionFactory.generateConstructor(ReflectionFactory.java:514)
	at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:427)
	at jdk.unsupported/sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:103)
	... 39 more

Running com.mambu.apisdk.MambuAPIServiceTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.003 sec
Running com.mambu.apisdk.MambuAPIServiceFactoryTest
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.002 sec <<< FAILURE!
initializationError(com.mambu.apisdk.MambuAPIServiceFactoryTest)  Time elapsed: 0 sec  <<< ERROR!
org.objenesis.ObjenesisException: java.lang.reflect.InvocationTargetException
	at org.objenesis.instantiator.sun.SunReflectionFactoryHelper.newConstructorForSerialization(SunReflectionFactoryHelper.java:55)
	at org.objenesis.instantiator.sun.SunReflectionFactoryInstantiator.<init>(SunReflectionFactoryInstantiator.java:38)
	at org.objenesis.strategy.StdInstantiatorStrategy.newInstantiatorOf(StdInstantiatorStrategy.java:58)
	at org.objenesis.ObjenesisBase.getInstantiatorOf(ObjenesisBase.java:91)
	at org.powermock.reflect.internal.WhiteboxImpl.newInstance(WhiteboxImpl.java:222)
	at org.powermock.reflect.Whitebox.newInstance(Whitebox.java:139)
	at org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.registerProxyframework(AbstractTestSuiteChunkerImpl.java:158)
	at org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.chunkClass(AbstractTestSuiteChunkerImpl.java:181)
	at org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.<init>(AbstractTestSuiteChunkerImpl.java:96)
	at org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.<init>(AbstractTestSuiteChunkerImpl.java:89)
	at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.<init>(JUnit4TestSuiteChunkerImpl.java:49)
	at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.<init>(AbstractCommonPowerMockRunner.java:32)
	at org.powermock.modules.junit4.PowerMockRunner.<init>(PowerMockRunner.java:34)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:490)
	at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
	at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
	at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
	at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
	at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
	at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:250)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:141)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:112)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.apache.maven.surefire.util.ReflectionUtils.invokeMethodWithArray(ReflectionUtils.java:189)
	at org.apache.maven.surefire.booter.ProviderFactory$ProviderProxy.invoke(ProviderFactory.java:165)
	at org.apache.maven.surefire.booter.ProviderFactory.invokeProvider(ProviderFactory.java:85)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:115)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:75)
Caused by: java.lang.reflect.InvocationTargetException
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.objenesis.instantiator.sun.SunReflectionFactoryHelper.newConstructorForSerialization(SunReflectionFactoryHelper.java:45)
	... 34 more
Caused by: java.lang.IllegalAccessError: class jdk.internal.reflect.ConstructorAccessorImpl loaded by org.powermock.core.classloader.MockClassLoader @4082ba93 cannot access jdk/internal/reflect superclass jdk.internal.reflect.MagicAccessorImpl
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
	at org.powermock.core.classloader.MockClassLoader.loadUnmockedClass(MockClassLoader.java:238)
	at org.powermock.core.classloader.MockClassLoader.loadModifiedClass(MockClassLoader.java:182)
	at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:70)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	at java.base/java.lang.ClassLoader.defineClass1(Native Method)
	at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
	at org.powermock.core.classloader.MockClassLoader.loadUnmockedClass(MockClassLoader.java:238)
	at org.powermock.core.classloader.MockClassLoader.loadModifiedClass(MockClassLoader.java:182)
	at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:70)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
	at java.base/jdk.internal.misc.Unsafe.defineClass0(Native Method)
	at java.base/jdk.internal.misc.Unsafe.defineClass(Unsafe.java:1192)
	at java.base/jdk.internal.reflect.ClassDefiner.defineClass(ClassDefiner.java:63)
	at java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:400)
	at java.base/jdk.internal.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:394)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/jdk.internal.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:393)
	at java.base/jdk.internal.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:112)
	at java.base/jdk.internal.reflect.ReflectionFactory.generateConstructor(ReflectionFactory.java:514)
	at java.base/jdk.internal.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:427)
	at jdk.unsupported/sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:103)
	... 39 more

Running com.mambu.apisdk.services.DocumentsServiceTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.084 sec
Running com.mambu.apisdk.services.IntelligenceServiceTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 sec
Running com.mambu.apisdk.services.UsersServiceTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec
Running com.mambu.apisdk.services.TasksServiceTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.026 sec
Running com.mambu.apisdk.services.OrganizationServiceTest
Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.005 sec
Running com.mambu.apisdk.services.LoanServiceTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.048 sec
Running com.mambu.apisdk.services.AccountingServiceTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec
Running com.mambu.apisdk.services.SavingsServiceTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.01 sec
Running com.mambu.apisdk.services.ActivitiesServiceTest
Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec
Running com.mambu.apisdk.services.ClientServiceTest
Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.004 sec
Running com.mambu.apisdk.services.RepaymentsServiceTest
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.001 sec

Results :

Tests in error: 
  initializationError(com.mambu.apisdk.MambuAPIFactoryTest): java.lang.reflect.InvocationTargetException
  initializationError(com.mambu.apisdk.MambuAPIServiceFactoryTest): java.lang.reflect.InvocationTargetException

Tests run: 35, Failures: 0, Errors: 2, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.066 s
[INFO] Finished at: 2022-12-14T17:42:19+08:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4:test (default-test) on project Mambu-APIs-Java: There are test failures.
[ERROR] 
[ERROR] Please refer to /Users/guest/workspaces/Mambu-APIs-Java/target/surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Publish SDK & dependencies to a public maven repository

Please, publish the SDK & model jars to Maven Central or jCenter or anything else that can be plugged into a Maven/Gradle build without checking in JARs into version control.

Right now updating the dependencies is a pain every time one need to do it.

Can't create client - Nullpointer exception for clientActivateDateField

Hi, i'm using Mambu API version 6 and can't make client creation to work for me. Here's a simple example:

class MambuClientDtoGenerator{
public static ClientExpanded expandedClient() {
        ClientExpanded client = new ClientExpanded();
        client.setClient(randomClient());
        client.setAddresses(Collections.singletonList(randomAddress()));

        return client;
    }

public static Client randomClient() {
        Client client = new Client(faker.name().firstName(), faker.name().lastName());
        client.setCreationDate(new Date());
        client.setBirthDate(faker.date().past(25 * 365, TimeUnit.DAYS));
        client.setApprovedDate(new Date());
        client.setLastModifiedDate(new Date());
        return client;
    }

    public static Address randomAddress() {
        Address address = new Address();
        address.setCity(faker.address().city());
        address.setCountry(faker.address().country());
        address.setPostcode(faker.address().zipCode());
        address.setLine1(faker.address().streetAddress());
        address.setLine2(faker.address().streetAddressNumber());
        return address;
    }
}


ClientExpanded clientDetails = MambuClientDtoGenerator.expandedClient();
mambuAPIServiceFactory.getClientService().createClient(clientDetails);

As a result i get nullpointer exception and from stack i see that closedDate is null. If i set it to some date, then it's gonna be closed, right ? :

java.lang.NullPointerException
	at java.util.Calendar.setTime(Calendar.java:1770)
	at java.text.SimpleDateFormat.format(SimpleDateFormat.java:943)
	at java.text.SimpleDateFormat.format(SimpleDateFormat.java:936)
	at java.text.DateFormat.format(DateFormat.java:345)
	at com.google.gson.DefaultDateTypeAdapter.write(DefaultDateTypeAdapter.java:88)
	at com.google.gson.DefaultDateTypeAdapter.write(DefaultDateTypeAdapter.java:40)
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:69)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:125)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:243)
	at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.write(TypeAdapterRuntimeTypeWrapper.java:69)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.write(ReflectiveTypeAdapterFactory.java:125)
	at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.write(ReflectiveTypeAdapterFactory.java:243)
	at com.google.gson.Gson.toJson(Gson.java:669)
	at com.google.gson.Gson.toJson(Gson.java:648)
	at com.google.gson.Gson.toJson(Gson.java:603)
	at com.mambu.apisdk.util.ServiceHelper.makeApiJson(ServiceHelper.java:392)
	at com.mambu.apisdk.util.ServiceExecutor.executeJson(ServiceExecutor.java:305)
	at com.mambu.apisdk.util.ServiceExecutor.executeJson(ServiceExecutor.java:355)
	at com.mambu.apisdk.services.ClientsService.createClient(ClientsService.java:302)

I'm running Java8 with Mambu-APi version 6 + mambumodels 6

getLoanAccountsForClient - doesn't work for all kind of LoanAccounts

After moving to MAMBU version 3.7 I receive error while trying to get some Clients Loan Accounts

for ID: 776735710 - it throws an error
for ID: 109257621 - returns the values

my code is very simple

MambuAPIFactory.setUp("kapiltd.sandbox.mambu.com", "user", "pass");
LoansService loansService =MambuAPIFactory.getLoanService();
List loanAccounts = loansService.getLoanAccountsForClient(clientID);

HTTP Status 500 - Request processing failed; nested exception is com.google.gson.JsonParseException: The JsonDeserializer EnumTypeAdapter failed to deserialize json object "REFINANCED" given the type class com.mambu.accounts.shared.model.AccountState

type Exception report

message Request processing failed; nested exception is com.google.gson.JsonParseException: The JsonDeserializer EnumTypeAdapter failed to deserialize json object "REFINANCED" given the type class com.mambu.accounts.shared.model.AccountState

description The server encountered an internal error that prevented it from fulfilling this request.

exception

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is com.google.gson.JsonParseException: The JsonDeserializer EnumTypeAdapter failed to deserialize json object "REFINANCED" given the type class com.mambu.accounts.shared.model.AccountState
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:973)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

com.google.gson.JsonParseException: The JsonDeserializer EnumTypeAdapter failed to deserialize json object "REFINANCED" given the type class com.mambu.accounts.shared.model.AccountState
com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:64)
com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:92)
com.google.gson.JsonObjectDeserializationVisitor.visitFieldUsingCustomHandler(JsonObjectDeserializationVisitor.java:117)
com.google.gson.ReflectingFieldNavigator.visitFieldsReflectively(ReflectingFieldNavigator.java:63)
com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:120)
com.google.gson.JsonDeserializationContextDefault.fromJsonObject(JsonDeserializationContextDefault.java:76)
com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:54)
com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter.deserialize(DefaultTypeAdapters.java:663)
com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter.deserialize(DefaultTypeAdapters.java:624)
com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:51)
com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:92)
com.google.gson.JsonDeserializationVisitor.visitUsingCustomHandler(JsonDeserializationVisitor.java:80)
com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:101)
com.google.gson.JsonDeserializationContextDefault.fromJsonArray(JsonDeserializationContextDefault.java:67)
com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:52)
com.google.gson.Gson.fromJson(Gson.java:551)
com.google.gson.Gson.fromJson(Gson.java:498)
com.google.gson.Gson.fromJson(Gson.java:467)
com.google.gson.Gson.fromJson(Gson.java:417)
com.mambu.apisdk.util.ServiceHelper.getCollection(ServiceHelper.java:293)
com.mambu.apisdk.util.ServiceHelper.execute(ServiceHelper.java:166)
com.mambu.apisdk.util.ServiceHelper.execute(ServiceHelper.java:198)
com.mambu.apisdk.services.LoansService.getLoanAccountsForClient(LoansService.java:144)
com.ibankService.ibankService.getUpcomingPayments(ibankService.java:202)
comm.app.starter.ibank.iBank.getUpcomingPayments(iBank.java:306)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:483)
org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
root cause

java.lang.IllegalArgumentException: No enum constant com.mambu.accounts.shared.model.AccountState.REFINANCED
java.lang.Enum.valueOf(Enum.java:238)
com.google.gson.DefaultTypeAdapters$EnumTypeAdapter.deserialize(DefaultTypeAdapters.java:524)
com.google.gson.DefaultTypeAdapters$EnumTypeAdapter.deserialize(DefaultTypeAdapters.java:514)
com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:51)
com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:92)
com.google.gson.JsonObjectDeserializationVisitor.visitFieldUsingCustomHandler(JsonObjectDeserializationVisitor.java:117)
com.google.gson.ReflectingFieldNavigator.visitFieldsReflectively(ReflectingFieldNavigator.java:63)
com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:120)
com.google.gson.JsonDeserializationContextDefault.fromJsonObject(JsonDeserializationContextDefault.java:76)
com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:54)
com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter.deserialize(DefaultTypeAdapters.java:663)
com.google.gson.DefaultTypeAdapters$CollectionTypeAdapter.deserialize(DefaultTypeAdapters.java:624)
com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:51)
com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:92)
com.google.gson.JsonDeserializationVisitor.visitUsingCustomHandler(JsonDeserializationVisitor.java:80)
com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:101)
com.google.gson.JsonDeserializationContextDefault.fromJsonArray(JsonDeserializationContextDefault.java:67)
com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:52)
com.google.gson.Gson.fromJson(Gson.java:551)
com.google.gson.Gson.fromJson(Gson.java:498)
com.google.gson.Gson.fromJson(Gson.java:467)
com.google.gson.Gson.fromJson(Gson.java:417)
com.mambu.apisdk.util.ServiceHelper.getCollection(ServiceHelper.java:293)
com.mambu.apisdk.util.ServiceHelper.execute(ServiceHelper.java:166)
com.mambu.apisdk.util.ServiceHelper.execute(ServiceHelper.java:198)
com.mambu.apisdk.services.LoansService.getLoanAccountsForClient(LoansService.java:144)
com.ibankService.ibankService.getUpcomingPayments(ibankService.java:202)
comm.app.starter.ibank.iBank.getUpcomingPayments(iBank.java:306)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:483)
org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:749)
org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:689)
org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:938)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:870)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
javax.servlet.http.HttpServlet.service(HttpServlet.java:620)
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.54 logs.

is there any way to resolve this problem?

setAssignedBranchKey not working

Hello,
I'm using 3.6 libraries and this functionality is not working:

MambuAPIFactory.setUp("kapiltd.sandbox.mambu.com", "username", "Password");
Client client = MambuAPIFactory.getClientService().getClient("771159790");

client.setAssignedBranchKey("8a2ac5c747a4c7050147a67dff453f40");
client.setAssignedUserKey("8ada716a44aaa3040144aac7897e0020");

setAssignedBranchKey and setAssignedUserKey are not working

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.