Add dedicated method for api count in baseApiActionUtil; improve null handling in json to record

This commit is contained in:
2022-10-24 15:34:37 -05:00
parent 22b2e01cca
commit 44537e182d
4 changed files with 22 additions and 6 deletions

View File

@ -266,6 +266,12 @@ public class JsonUtils
} }
} }
if(jsonObjectToUse.isNull(backendName))
{
record.setValue(fieldName, null);
continue;
}
switch(metaData.getType()) switch(metaData.getType())
{ {
case INTEGER -> record.setValue(fieldName, jsonObjectToUse.optInt(backendName)); case INTEGER -> record.setValue(fieldName, jsonObjectToUse.optInt(backendName));

View File

@ -22,13 +22,11 @@
package com.kingsrook.qqq.backend.module.api.actions; package com.kingsrook.qqq.backend.module.api.actions;
import java.util.List;
import com.kingsrook.qqq.backend.core.actions.interfaces.CountInterface; import com.kingsrook.qqq.backend.core.actions.interfaces.CountInterface;
import com.kingsrook.qqq.backend.core.exceptions.QException; import com.kingsrook.qqq.backend.core.exceptions.QException;
import com.kingsrook.qqq.backend.core.model.actions.tables.count.CountInput; import com.kingsrook.qqq.backend.core.model.actions.tables.count.CountInput;
import com.kingsrook.qqq.backend.core.model.actions.tables.count.CountOutput; import com.kingsrook.qqq.backend.core.model.actions.tables.count.CountOutput;
import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter; import com.kingsrook.qqq.backend.core.model.actions.tables.query.QQueryFilter;
import com.kingsrook.qqq.backend.core.model.data.QRecord;
import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData; import com.kingsrook.qqq.backend.core.model.metadata.tables.QTableMetaData;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient; import org.apache.http.client.HttpClient;
@ -71,10 +69,10 @@ public class APICountAction extends AbstractAPIAction implements CountInterface
apiActionUtil.setupAdditionalHeaders(request); apiActionUtil.setupAdditionalHeaders(request);
HttpResponse response = client.execute(request); HttpResponse response = client.execute(request);
List<QRecord> queryResults = apiActionUtil.processGetResponse(table, response); Integer count = apiActionUtil.processGetResponseForCount(table, response);
CountOutput rs = new CountOutput(); CountOutput rs = new CountOutput();
rs.setCount(queryResults.size()); rs.setCount(count);
return rs; return rs;
} }
catch(Exception e) catch(Exception e)

View File

@ -458,4 +458,16 @@ public class BaseAPIActionUtil
{ {
return (jsonObjectToRecord(getJsonObject(response), table.getFields())); return (jsonObjectToRecord(getJsonObject(response), table.getFields()));
} }
/*******************************************************************************
**
*******************************************************************************/
public Integer processGetResponseForCount(QTableMetaData table, HttpResponse response) throws IOException
{
List<QRecord> queryResults = processGetResponse(table, response);
return (queryResults.size());
}
} }

View File

@ -87,7 +87,7 @@ checkBuild()
color="gray" color="gray"
fi fi
if [ $index -lt 1 -o $seconds -lt 300 ]; then if [ $index -lt 1 -o $seconds -lt 600 ]; then
echo -n "${shortRepo}(${shortAge})${icon} " echo -n "${shortRepo}(${shortAge})${icon} "
fi fi
details="$details\n$repo: $jobName: $buildStatus @ $age ago | color=$color | href=$url | image=$avatarB64" details="$details\n$repo: $jobName: $buildStatus @ $age ago | color=$color | href=$url | image=$avatarB64"