diff options
Diffstat (limited to 'client/js/models/post_metric_range.js')
| -rw-r--r-- | client/js/models/post_metric_range.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/client/js/models/post_metric_range.js b/client/js/models/post_metric_range.js new file mode 100644 index 0000000..ab7bddb --- /dev/null +++ b/client/js/models/post_metric_range.js @@ -0,0 +1,43 @@ +'use strict'; + +const events = require('../events.js'); + +class PostMetricRange extends events.EventTarget { + constructor() { + super(); + this._updateFromResponse({}); + } + + static create(postId, tag) { + const metric = new PostMetricRange(); + metric._postId = postId; + metric._tagName = tag.names[0]; + metric._low = tag.metric.min; + metric._high = tag.metric.max; + return metric; + } + + static fromResponse(response) { + const metric = new PostMetricRange(); + metric._updateFromResponse(response); + return metric; + } + + get tagName() { return this._tagName; } + get postId() { return this._postId; } + get low() { return this._low; } + get high() { return this._high; } + + set low(value) { this._low = value; } + set high(value) { this._high = value; } + + _updateFromResponse(response) { + this._version = response.version; + this._postId = response.post_id; + this._tagName = response.tag_name; + this._low = response.low; + this._high = response.high; + } +} + +module.exports = PostMetricRange;
\ No newline at end of file |