String nonce = payload.optString("nonce", null);
if (nonce == null) {
payload.setNonce(nonce);
ApptentiveLog.v(DATABASE, "Payload of type %s:, %s", payload.getPayloadType().name(), payload);
ContentValues values = new ContentValues();
values.put(PayloadEntry.COLUMN_IDENTIFIER.name, notNull(payload.getNonce()));
values.put(PayloadEntry.COLUMN_PAYLOAD_TYPE.name, notNull(payload.getPayloadType().name()));
values.put(PayloadEntry.COLUMN_CONTENT_TYPE.name, notNull(payload.getHttpRequestContentType()));
if (!payload.isAuthenticated()) {
values.put(PayloadEntry.COLUMN_AUTH_TOKEN.name, encrypt(payload.getConversationToken()));
values.put(PayloadEntry.COLUMN_CONVERSATION_ID.name, payload.getConversationId());
values.put(PayloadEntry.COLUMN_REQUEST_METHOD.name, payload.getHttpRequestMethod().name());
values.put(PayloadEntry.COLUMN_PATH.name, payload.getHttpEndPoint(
StringUtils.isNullOrEmpty(payload.getConversationId()) ? "${conversationId}" : payload.getConversationId())
);
File dest = getPayloadBodyFile(payload.getNonce());
ApptentiveLog.v(DATABASE, "Saving payload body to: %s", hideIfSanitized(dest));
writeToFile(dest, payload.renderData(), !payload.isAuthenticated());
values.put(PayloadEntry.COLUMN_AUTHENTICATED.name, payload.isAuthenticated() ? TRUE : FALSE);