add collection id in response (#1254)

*  add collection id in response

*  Minor improvements

Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
This commit is contained in:
Ricardo Espinoza 2020-12-23 03:12:05 -05:00 committed by GitHub
parent 0f0e67eb30
commit df4f433d9b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 0 deletions

View file

@ -121,6 +121,13 @@ export class CloudFirestore implements INodeType {
{ documents: documentList }, { documents: documentList },
); );
responseData = responseData.map((element: { found: { id: string, name: string } }) => {
if (element.found) {
element.found.id = (element.found.name as string).split('/').pop() as string;
}
return element;
});
if (simple === false) { if (simple === false) {
returnData.push.apply(returnData, responseData as IDataObject[]); returnData.push.apply(returnData, responseData as IDataObject[]);
} else { } else {
@ -148,6 +155,9 @@ export class CloudFirestore implements INodeType {
`/${projectId}/databases/${database}/documents/${collection}`, `/${projectId}/databases/${database}/documents/${collection}`,
document, document,
); );
responseData.id = (responseData.name as string).split('/').pop();
if (simple === false) { if (simple === false) {
returnData.push(responseData); returnData.push(responseData);
} else { } else {
@ -179,11 +189,16 @@ export class CloudFirestore implements INodeType {
) as IDataObject; ) as IDataObject;
responseData = getAllResponse.documents; responseData = getAllResponse.documents;
} }
responseData = responseData.map((element: IDataObject) => {
element.id = (element.name as string).split('/').pop();
return element;
});
if (simple === false) { if (simple === false) {
returnData.push.apply(returnData, responseData); returnData.push.apply(returnData, responseData);
} else { } else {
returnData.push.apply(returnData, responseData.map((element: IDataObject) => fullDocumentToJson(element as IDataObject))); returnData.push.apply(returnData, responseData.map((element: IDataObject) => fullDocumentToJson(element as IDataObject)));
} }
} else if (operation === 'delete') { } else if (operation === 'delete') {
const responseData: IDataObject[] = []; const responseData: IDataObject[] = [];
@ -295,6 +310,14 @@ export class CloudFirestore implements INodeType {
`/${projectId}/databases/${database}/documents:runQuery`, `/${projectId}/databases/${database}/documents:runQuery`,
JSON.parse(query), JSON.parse(query),
); );
responseData = responseData.map((element: { document: { id: string, name: string } }) => {
if (element.document) {
element.document.id = (element.document.name as string).split('/').pop() as string;
}
return element;
});
if (simple === false) { if (simple === false) {
returnData.push.apply(returnData, responseData); returnData.push.apply(returnData, responseData);
} else { } else {

View file

@ -117,6 +117,7 @@ export function fullDocumentToJson(data: IDataObject): IDataObject {
return { return {
_name: data.name, _name: data.name,
_id: data.id,
_createTime: data.createTime, _createTime: data.createTime,
_updateTime: data.updateTime, _updateTime: data.updateTime,
...documentToJson(data.fields as IDataObject), ...documentToJson(data.fields as IDataObject),