summaryrefslogtreecommitdiff
path: root/client/js/models/post_metric.js
diff options
context:
space:
mode:
Diffstat (limited to 'client/js/models/post_metric.js')
-rw-r--r--client/js/models/post_metric.js39
1 files changed, 39 insertions, 0 deletions
diff --git a/client/js/models/post_metric.js b/client/js/models/post_metric.js
new file mode 100644
index 0000000..dd06957
--- /dev/null
+++ b/client/js/models/post_metric.js
@@ -0,0 +1,39 @@
+'use strict';
+
+const events = require('../events.js');
+
+class PostMetric extends events.EventTarget {
+ constructor() {
+ super();
+ this._updateFromResponse({});
+ }
+
+ static create(postId, tag) {
+ const metric = new PostMetric();
+ metric._postId = postId;
+ metric._tagName = tag.names[0];
+ metric._value = tag.metric.min;
+ return metric;
+ }
+
+ static fromResponse(response) {
+ const metric = new PostMetric();
+ metric._updateFromResponse(response);
+ return metric;
+ }
+
+ get tagName() { return this._tagName; }
+ get postId() { return this._postId; }
+ get value() { return this._value; }
+
+ set value(value) { this._value = value; }
+
+ _updateFromResponse(response) {
+ this._version = response.version;
+ this._postId = response.post_id;
+ this._tagName = response.tag_name;
+ this._value = response.value;
+ }
+}
+
+module.exports = PostMetric; \ No newline at end of file