diff --git a/api-docs/apiLive.htm b/api-docs/apiLive.htm
index 3bdcd0cad..6a3d4624f 100644
--- a/api-docs/apiLive.htm
+++ b/api-docs/apiLive.htm
@@ -231,6 +231,21 @@ function getBaseURL(docURL)
Update a Code |
Delete a Code |
+
+ | FUNDS | funds |
+ Create a Fund |
+ List Funds |
+ |
+ |
+
+
+ |
+ funds/{fundId} |
+ |
+ Retrieve a Fund |
+ Update a Fund |
+ |
+
@@ -2470,6 +2485,100 @@ Content-Type: application/json
+
+
+
+
Funds
+
Simple implementation of funds. At present funds can optionally be associated with a Loan.
+
This information can then be used to produce reports on loans/loan amounts drawn from a fund.
+
+
+
+
+
+
+
Create a Fund
+
Creates a fund.
+
+
+ POST https://Domain Name/api/v1/funds
+ POST funds
+Content-Type: application/json
+Request Body:
+{
+ "name": "EU Agri Fund"
+}
+
+ {
+ "resourceId": 1
+}
+
+
+
+
+
+
+
+
Retrieve Funds
+
Returns the list of funds.
+
Example Requests:
+
funds
+
+
+ GET https://Domain Name/api/v1/funds
+ [
+ {
+ "id": 1,
+ "name": "EU Agri Fund"
+ }
+]
+
+
+
+
+
+
+
+
Retrieve a Fund
+
Returns the details of a Fund.
+
Example Requests:
+
funds/1
+
+
+ GET https://Domain Name/api/v1/funds/1
+ {
+ "id": 1,
+ "name": "EU Agri Fund"
+}
+
+
+
+
+
+
+
+
Update a Fund
+
Updates the details of a fund.
+
+
+ PUT https://Domain Name/api/v1/funds/1
+ PUT funds/1
+Content-Type: application/json
+Request Body:
+{
+ "name": "EU Agri Fund (2010-2020)"
+}
+
+ {
+ "resourceId": 1,
+ "changes": {
+ "name": "EU Agri Fund (2010-2020)"
+ }
+}
+
+
+
+
@@ -3576,6 +3685,21 @@ Request body:
Update a Code |
Delete a Code |
+
+ | FUNDS | funds |
+ Create a Fund |
+ List Funds |
+ |
+ |
+
+
+ |
+ funds/{fundId} |
+ |
+ Retrieve a Fund |
+ Update a Fund |
+ |
+
| DATA TABLE | datatables | | List Data Tables | | |
| datatables/register/{datatable}/{apptable} | Register Data Table | | | |
| datatables/deregister/{datatable} | Deregister Data Table | | | |
diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/serialization/ChargeDefinitionCommandFromApiJsonDeserializer.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/serialization/ChargeDefinitionCommandFromApiJsonDeserializer.java
index 3bc9881aa..37efb3a85 100644
--- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/serialization/ChargeDefinitionCommandFromApiJsonDeserializer.java
+++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/charge/serialization/ChargeDefinitionCommandFromApiJsonDeserializer.java
@@ -10,19 +10,14 @@ import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.mifosplatform.infrastructure.core.exception.InvalidJsonException;
import org.mifosplatform.infrastructure.core.serialization.AbstractFromApiJsonDeserializer;
-import org.mifosplatform.infrastructure.core.serialization.FromApiJsonDeserializer;
import org.mifosplatform.infrastructure.core.serialization.FromJsonHelper;
import org.mifosplatform.portfolio.charge.command.ChargeDefinitionCommand;
-import org.mifosplatform.portfolio.fund.command.FundCommand;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.google.gson.JsonElement;
import com.google.gson.reflect.TypeToken;
-/**
- * Implementation of {@link FromApiJsonDeserializer} for {@link FundCommand}'s.
- */
@Component
public final class ChargeDefinitionCommandFromApiJsonDeserializer extends AbstractFromApiJsonDeserializer
{
diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/fund/command/FundCommand.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/fund/command/FundCommand.java
deleted file mode 100644
index 54c26701d..000000000
--- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/fund/command/FundCommand.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package org.mifosplatform.portfolio.fund.command;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.mifosplatform.infrastructure.core.data.ApiParameterError;
-import org.mifosplatform.infrastructure.core.data.DataValidatorBuilder;
-import org.mifosplatform.infrastructure.core.exception.PlatformApiDataValidationException;
-
-/**
- * Immutable command for creating or updating details of a fund.
- */
-public class FundCommand {
-
- private final String name;
- private final String externalId;
-
- public FundCommand(final String fundName, final String externalId) {
- this.name = fundName;
- this.externalId = externalId;
- }
-
- public void validateForCreate() {
- List dataValidationErrors = new ArrayList();
-
- DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("fund");
-
- baseDataValidator.reset().parameter("name").value(this.name).notBlank();
- baseDataValidator.reset().parameter("externalId").value(this.externalId).notExceedingLengthOf(100);
-
- if (!dataValidationErrors.isEmpty()) { throw new PlatformApiDataValidationException("validation.msg.validation.errors.exist",
- "Validation errors exist.", dataValidationErrors); }
- }
-
- public void validateForUpdate() {
- List dataValidationErrors = new ArrayList();
-
- DataValidatorBuilder baseDataValidator = new DataValidatorBuilder(dataValidationErrors).resource("fund");
-
- baseDataValidator.reset().parameter("name").value(this.name).ignoreIfNull().notBlank();
- baseDataValidator.reset().parameter("externalId").value(this.externalId).ignoreIfNull().notExceedingLengthOf(100);
-
- baseDataValidator.reset().anyOfNotNull(this.name, this.externalId);
-
- if (!dataValidationErrors.isEmpty()) { throw new PlatformApiDataValidationException("validation.msg.validation.errors.exist",
- "Validation errors exist.", dataValidationErrors); }
- }
-}
\ No newline at end of file
diff --git a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/fund/serialization/FundCommandFromApiJsonDeserializer.java b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/fund/serialization/FundCommandFromApiJsonDeserializer.java
index 75762f564..50ed62ddf 100644
--- a/mifosng-provider/src/main/java/org/mifosplatform/portfolio/fund/serialization/FundCommandFromApiJsonDeserializer.java
+++ b/mifosng-provider/src/main/java/org/mifosplatform/portfolio/fund/serialization/FundCommandFromApiJsonDeserializer.java
@@ -1,28 +1,27 @@
package org.mifosplatform.portfolio.fund.serialization;
import java.lang.reflect.Type;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.lang.StringUtils;
+import org.mifosplatform.infrastructure.core.data.ApiParameterError;
+import org.mifosplatform.infrastructure.core.data.DataValidatorBuilder;
import org.mifosplatform.infrastructure.core.exception.InvalidJsonException;
-import org.mifosplatform.infrastructure.core.serialization.AbstractFromApiJsonDeserializer;
-import org.mifosplatform.infrastructure.core.serialization.FromApiJsonDeserializer;
+import org.mifosplatform.infrastructure.core.exception.PlatformApiDataValidationException;
import org.mifosplatform.infrastructure.core.serialization.FromJsonHelper;
-import org.mifosplatform.portfolio.fund.command.FundCommand;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.google.gson.JsonElement;
import com.google.gson.reflect.TypeToken;
-/**
- * Implementation of {@link FromApiJsonDeserializer} for {@link FundCommand}'s.
- */
@Component
-public final class FundCommandFromApiJsonDeserializer extends AbstractFromApiJsonDeserializer {
+public final class FundCommandFromApiJsonDeserializer {
/**
* The parameters supported for this command.
@@ -36,18 +35,51 @@ public final class FundCommandFromApiJsonDeserializer extends AbstractFromApiJso
this.fromApiJsonHelper = fromApiJsonHelper;
}
- @Override
- public FundCommand commandFromApiJson(final String json) {
-
+ public void validateForCreate(final String json) {
if (StringUtils.isBlank(json)) { throw new InvalidJsonException(); }
final Type typeOfMap = new TypeToken