Skip to content
This repository was archived by the owner on Jan 10, 2024. It is now read-only.

Commit 5548cf8

Browse files
author
Pat Patterson
committed
Merge pull request #24 from cwarden/field-type-support
Improve field-type support in create calls
2 parents e23a6ef + 7c8bcda commit 5548cf8

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

RemoteTKController.cls

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public class RemoteTKController {
5858
@remoteAction
5959
public static String create(String objtype, String fields) {
6060
Schema.SObjectType targetType = Schema.getGlobalDescribe().get(objtype);
61+
Map<String, Schema.sObjectField> targetFields = targetType.getDescribe().fields.getMap();
6162
if (targetType == null) {
6263
return '[{"message":"The requested resource does not exist","errorCode":"NOT_FOUND"}]';
6364
}
@@ -73,7 +74,18 @@ public class RemoteTKController {
7374

7475
try {
7576
for (String key : fieldMap.keySet()) {
76-
obj.put(key, fieldMap.get(key));
77+
if (targetFields.get(key).getDescribe().getType() == Schema.DisplayType.Date) {
78+
obj.put(key, Date.valueOf((String)fieldMap.get(key)));
79+
} else if (targetFields.get(key).getDescribe().getType() == Schema.DisplayType.Percent ||
80+
targetFields.get(key).getDescribe().getType() == Schema.DisplayType.Currency) {
81+
obj.put(key, String.valueOf(fieldMap.get(key)) == '' ? null : Decimal.valueOf((String)fieldMap.get(key)));
82+
} else if (targetFields.get(key).getDescribe().getType() == Schema.DisplayType.Double) {
83+
obj.put(key, String.valueOf(fieldMap.get(key)) == '' ? null : Double.valueOf(fieldMap.get(key)));
84+
} else if (targetFields.get(key).getDescribe().getType() == Schema.DisplayType.Integer) {
85+
obj.put(key, Integer.valueOf(fieldMap.get(key)));
86+
} else {
87+
obj.put(key, fieldMap.get(key));
88+
}
7789
}
7890
} catch (SObjectException soe) {
7991
return '[{"message":"'+soe.getMessage()+'","errorCode":"INVALID_FIELD"}]';

0 commit comments

Comments
 (0)