dbm-graph-api 1.1.59 → 1.1.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dbm-graph-api",
3
- "version": "1.1.59",
3
+ "version": "1.1.60",
4
4
  "main": "index.js",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -190,6 +190,9 @@ export const fullEncodeSetup = function() {
190
190
  registerEncoding("menuItem", new DbmGraphApi.range.encode.MenuItem());
191
191
 
192
192
  registerEncoding("action", new DbmGraphApi.range.encode.Action());
193
+
194
+ registerEncoding("review", new DbmGraphApi.range.encode.Review());
195
+ registerEncoding("reviewSource", new DbmGraphApi.range.encode.ReviewSource());
193
196
  }
194
197
 
195
198
  export const registerDataFunction = function(aName, aDataFunction) {
@@ -265,6 +268,8 @@ export const fullProcessActionSetup = function() {
265
268
  registerProcessActionFunction("pageUpdates/updateCategoryListing", new DbmGraphApi.processAction.pageUpdates.UpdateCategoryListing());
266
269
  registerProcessActionFunction("pageUpdates/updateRenderedContent", new DbmGraphApi.processAction.pageUpdates.UpdateRenderedContent());
267
270
  registerProcessActionFunction("pageUpdates/clearCache", new DbmGraphApi.processAction.pageUpdates.ClearCloudflareCache());
271
+
272
+ registerProcessActionFunction("googleMaps/updateReviews", new DbmGraphApi.processAction.googleMaps.UpdateReviews());
268
273
  }
269
274
 
270
275
  export const setupInternalTaskRunner = function() {
@@ -0,0 +1,54 @@
1
+ import Dbm from "dbm";
2
+
3
+ export default class UpdateReviews extends Dbm.core.BaseObject {
4
+ _construct() {
5
+ super._construct();
6
+ }
7
+
8
+ async process(aAction) {
9
+ //console.log("UpdateReviews:process");
10
+ //console.log(aAction);
11
+
12
+ let database = Dbm.node.getDatabase();
13
+
14
+ let place = await aAction.singleObjectRelationQuery("out:from:google/place");
15
+ let placeId = await place.getIdentifier();
16
+
17
+ let reviews = await Dbm.node.googlemaps.getReviews(placeId);
18
+
19
+ let currentArray = reviews;
20
+ let currentArrayLength = currentArray.length;
21
+ for(let i = 0; i < currentArrayLength; i++) {
22
+ let currentReview = currentArray[i];
23
+ let reviewId = currentReview["name"];
24
+
25
+ let reviewSource = await database.getIdentifiableObjectIfExists("reviewSource/googleReview", reviewId);
26
+ if(!reviewSource) {
27
+
28
+ reviewSource = await database.createObject("private", ["reviewSource", "reviewSource/googleReview"]);
29
+ await reviewSource.setIdentifier(reviewId);
30
+ await reviewSource.addLinkedType("type/reviewSourceType", "google");
31
+ await reviewSource.updateField("date", currentReview["publishTime"]);
32
+ await reviewSource.updateField("rating", currentReview["rating"]);
33
+ await reviewSource.updateField("description", Dbm.objectPath(currentReview, "originalText.text"));
34
+ await reviewSource.updateField("name", Dbm.objectPath(currentReview, "authorAttribution.displayName") + ", " + currentReview["rating"] + " stars, " + currentReview["publishTime"].split("T")[0]);
35
+ await reviewSource.updateField("from", Dbm.objectPath(currentReview, "authorAttribution.displayName"));
36
+ await reviewSource.updateField("imageUrl", Dbm.objectPath(currentReview, "authorAttribution.photoUri"));
37
+ await reviewSource.updateField("link", currentReview["googleMapsUri"]);
38
+
39
+ await reviewSource.outgoingRelations.add(place, "for");
40
+
41
+ let review = await database.createObject("public", ["review"]);
42
+
43
+ await review.outgoingRelations.add(reviewSource, "from");
44
+ await review.updateField("date", currentReview["publishTime"]);
45
+ await review.updateField("rating", currentReview["rating"]);
46
+ await review.updateField("description", Dbm.objectPath(currentReview, "originalText.text"));
47
+ await review.updateField("name", Dbm.objectPath(currentReview, "authorAttribution.displayName") + ", " + currentReview["rating"] + " stars, " + currentReview["publishTime"].split("T")[0]);
48
+ await review.updateField("from", Dbm.objectPath(currentReview, "authorAttribution.displayName"));
49
+
50
+ await review.addActionTrigger("review/created");
51
+ }
52
+ }
53
+ }
54
+ }
@@ -0,0 +1 @@
1
+ export {default as UpdateReviews} from "./UpdateReviews.js";
@@ -2,6 +2,7 @@ export * as pageUpdates from "./pageUpdates/index.js";
2
2
  export * as httpRequests from "./httpRequests/index.js";
3
3
  export * as actionGroup from "./actionGroup/index.js";
4
4
  export * as communication from "./communication/index.js";
5
+ export * as googleMaps from "./googleMaps/index.js";
5
6
 
6
7
  export {default as Example} from "./Example.js";
7
8
  export {default as HandleFormSubmission} from "./HandleFormSubmission.js";
@@ -0,0 +1,25 @@
1
+ import Dbm from "dbm";
2
+ import EncodeBaseObject from "./EncodeBaseObject.js";
3
+
4
+ export default class Review extends EncodeBaseObject {
5
+ _construct() {
6
+ super._construct();
7
+ }
8
+
9
+ async getEncodedData(aId, aEncodingSession) {
10
+
11
+ let returnObject = {};
12
+
13
+ let object = Dbm.getInstance().repository.getItem("graphDatabase").controller.getObject(aId);
14
+
15
+ let fields = await object.getFields();
16
+ returnObject["from"] = fields["from"];
17
+ returnObject["date"] = fields["date"];
18
+ returnObject["description"] = fields["description"];
19
+ returnObject["rating"] = fields["rating"];
20
+
21
+ returnObject["source"] = await aEncodingSession.encodeObjectOrNull(await object.singleObjectRelationQuery("out:from:reviewSource"), "reviewSource");
22
+
23
+ return returnObject;
24
+ }
25
+ }
@@ -0,0 +1,23 @@
1
+ import Dbm from "dbm";
2
+ import EncodeBaseObject from "./EncodeBaseObject.js";
3
+
4
+ export default class ReviewSource extends EncodeBaseObject {
5
+ _construct() {
6
+ super._construct();
7
+ }
8
+
9
+ async getEncodedData(aId, aEncodingSession) {
10
+
11
+ let returnObject = {};
12
+
13
+ let object = Dbm.getInstance().repository.getItem("graphDatabase").controller.getObject(aId);
14
+
15
+ let fields = await object.getFields();
16
+ returnObject["imageUrl"] = fields["imageUrl"];
17
+ returnObject["link"] = fields["link"];
18
+
19
+ returnObject["type"] = await aEncodingSession.encodeObjectOrNull(await object.singleObjectRelationQuery("in:for:type/reviewSourceType"), "type");
20
+
21
+ return returnObject;
22
+ }
23
+ }
@@ -30,5 +30,7 @@ export {default as MenuLocation} from "./MenuLocation.js";
30
30
  export {default as Menu} from "./Menu.js";
31
31
  export {default as MenuItem} from "./MenuItem.js";
32
32
  export {default as Action} from "./Action.js";
33
+ export {default as Review} from "./Review.js";
34
+ export {default as ReviewSource} from "./ReviewSource.js";
33
35
 
34
36
  export * as admin from "./admin/index.js";