@iotile/iotile-cloud
Version:
A typescript library for interfacing with the IOTile Cloud API
1,406 lines (1,405 loc) • 163 kB
JavaScript
"use strict";
/*
* Mock data for two projects that can be used to test the IOTile Companion App.
*/
Object.defineProperty(exports, "__esModule", { value: true });
var models_1 = require("../models");
var iotile_common_1 = require("@iotile/iotile-common");
var clonedeep = require("lodash.clonedeep");
var MockAdapter = require("axios-mock-adapter");
var axios = require("axios");
var Response;
(function (Response) {
Response[Response["Success"] = 200] = "Success";
Response[Response["Fail401"] = 401] = "Fail401";
Response[Response["Fail402"] = 402] = "Fail402";
})(Response = exports.Response || (exports.Response = {}));
var MockCloud = /** @class */ (function () {
function MockCloud(cloud) {
this.cloud = cloud;
this.cloud['Config'].ENV.SERVER_URLS = [{
"shortName": "PRODUCTION",
"longName": "Production Server",
"url": "https://iotile.cloud/api/v1",
"default": true
}];
this.cloud.server = {
"shortName": "PRODUCTION",
"longName": "Production Server",
"url": "https://iotile.cloud/api/v1",
"default": true
};
this.projects = [new models_1.Project(soil_proj), new models_1.Project(water_proj)];
var deviceList = [];
devices.forEach(function (element) {
deviceList.push(new models_1.Device(element));
});
this.devices = deviceList;
var varList = [];
variables.forEach(function (element) {
varList.push(new models_1.Variable(element));
});
this.variables = varList;
var streamList = [];
streams.forEach(function (element) {
streamList.push(new models_1.Stream(element));
});
this.streams = streamList;
var sgList = [];
sg.forEach(function (element) {
sgList.push(new models_1.SensorGraph(element));
});
this.sensorGraphs = sgList;
var vartypeList = [];
vartypes.forEach(function (element) {
vartypeList.push(new models_1.VarType(element));
});
this.varTypes = vartypeList;
var pts = [];
project_templates.forEach(function (element) {
pts.push(new models_1.ProjectTemplate(element));
});
this.projTemplates = pts;
}
MockCloud.prototype.buildListResponse = function (objects) {
var obj = {
"count": objects.length,
"next": null,
"prev": null,
"results": objects
};
return clonedeep(obj);
};
MockCloud.prototype.buildParamResponse = function (getType, paramType, param) {
var retrieved = [];
switch (getType) {
case 'project':
for (var _i = 0, _a = this.projects; _i < _a.length; _i++) {
var p = _a[_i];
if (p[paramType] == param) {
retrieved.push(p.serialize());
}
}
break;
case 'device':
for (var _b = 0, _c = this.devices; _b < _c.length; _b++) {
var d = _c[_b];
if (d[paramType] == param) {
retrieved.push(d.toJson());
}
}
break;
case 'sensorgraph':
for (var _d = 0, _e = this.sensorGraphs; _d < _e.length; _d++) {
var sg_1 = _e[_d];
if (sg_1[paramType] == param) {
retrieved.push(sg_1.toJson());
}
}
break;
case 'variable':
for (var _f = 0, _g = this.variables; _f < _g.length; _f++) {
var v = _g[_f];
if (v[paramType] == param) {
retrieved.push(v.toJson());
}
}
break;
case 'stream':
for (var _h = 0, _j = this.streams; _h < _j.length; _h++) {
var s = _j[_h];
if (s[paramType] == param) {
retrieved.push(s.toJson());
}
}
break;
case 'vartype':
for (var _k = 0, _l = this.varTypes; _k < _l.length; _k++) {
var vt = _l[_k];
if (vt[paramType] == param) {
retrieved.push(vt.toJson());
}
}
break;
case 'pt':
for (var _m = 0, _o = this.projTemplates; _m < _o.length; _m++) {
var pt = _o[_m];
if (pt[paramType] == param) {
retrieved.push(pt.toJson());
}
}
break;
}
var obj = this.buildListResponse(retrieved);
return clonedeep(obj);
};
MockCloud.prototype.getStream = function (slug) {
for (var _i = 0, _a = this.streams; _i < _a.length; _i++) {
var stream = _a[_i];
if (stream.slug == slug) {
return new models_1.Stream(stream);
}
}
throw new iotile_common_1.ArgumentError("Unknown stream slug: " + slug);
};
MockCloud.prototype.getDevice = function (slug) {
for (var _i = 0, _a = this.devices; _i < _a.length; _i++) {
var device = _a[_i];
if (device.slug == slug) {
return new models_1.Device(device);
}
}
throw new iotile_common_1.ArgumentError("Unknown device slug: " + slug);
};
MockCloud.prototype.expectStreamPatch = function (slug, data, responseType, responseData) {
if (responseData == null) {
responseData = {};
}
var url = '/stream/' + slug + '/';
this.MockAdapter.onPatch(url, data).reply(Response, responseData);
};
// FIXME: we need a helper to mock pagination, and the onGet to parse page_size & page filters
MockCloud.prototype.defaultSetup = function () {
this.MockAdapter = new MockAdapter(axios);
var that = this;
this.MockAdapter.onGet(/https:\/\/iotile\.cloud\/api\/v1\/project\/(\?([\w-]+(=[\w-]*)?(&[\w-]+(=[\w-]*)?)*))?$/).reply(200, that.buildListResponse([water_proj, soil_proj]));
this.MockAdapter.onGet(/https:\/\/iotile\.cloud\/api\/v1\/org\/(\?([\w-]+(=[\w-]*)?(&[\w-]+(=[\w-]*)?)*))?$/).reply(200, that.buildListResponse([arch_internal_org, arch_systems_org]));
this.MockAdapter.onGet(/https:\/\/iotile\.cloud\/api\/v1\/device\/(\?([\w-]+(=[\w-]*)?(&[\w-]+(=[\w-]*)?)*))?$/).reply(200, that.buildListResponse(devices));
this.MockAdapter.onGet(/https:\/\/iotile\.cloud\/api\/v1\/stream\/(\?([\w-]+(=[\w-]*)?(&[\w-]+(=[\w-]*)?)*))?$/).reply(200, that.buildListResponse(streams));
this.MockAdapter.onGet(/https:\/\/iotile\.cloud\/api\/v1\/variable\/(\?([\w-]+(=[\w-]*)?(&[\w-]+(=[\w-]*)?)*))?$/).reply(200, that.buildListResponse(variables));
this.MockAdapter.onGet(/https:\/\/iotile\.cloud\/api\/v1\/vartype\/(\?([\w-]+(=[\w-]*)?(&[\w-]+(=[\w-]*)?)*))?$/).reply(200, that.buildListResponse(vartypes));
this.MockAdapter.onGet(/https:\/\/iotile\.cloud\/api\/v1\/sg\/(\?([\w-]+(=[\w-]*)?(&[\w-]+(=[\w-]*)?)*))?$/).reply(200, that.buildListResponse(sg));
this.MockAdapter.onGet(/https:\/\/iotile\.cloud\/api\/v1\/pt\/(\?([\w-]+(=[\w-]*)?(&[\w-]+(=[\w-]*)?)*))?$/).reply(200, that.buildListResponse(project_templates));
this.MockAdapter.onGet("https://iotile.cloud/api/v1/org/" + arch_internal_org.slug + "/membership/").reply(200, arch_internal_membership);
this.MockAdapter.onGet("https://iotile.cloud/api/v1/org/" + arch_systems_org.slug + "/membership/").reply(200, arch_systems_membership);
// this.MockAdapter.onGet(`https://iotile.cloud/api/v1/project/(.+)/`, undefined, ['id']).reply(this.buildParamResponse('project', 'project', params['id']));
// this.MockAdapter.onGet(`https://iotile.cloud/api/v1/device/?project=(.+)`, undefined, ['id']).reply(this.buildParamResponse('device', 'project', params['id']));
// this.MockAdapter.onGet(`https://iotile.cloud/api/v1/stream/?project=(.+)`, undefined, ['id']).reply(this.buildParamResponse('stream', 'project', params['id']));
// this.MockAdapter.onGet(`https://iotile.cloud/api/v1/variable/(.+)`, undefined, ['id']).reply(this.buildParamResponse('variable', 'project', params['id']));
};
return MockCloud;
}());
exports.MockCloud = MockCloud;
var project_templates = [
{
"id": 2,
"name": "Default Template",
"slug": "default-template-v1-0-0",
"org": "arch-systems",
"version": "v1.0.0",
"extra_data": {
"web": {
"projectTemplateSlug": "default"
}
},
"created_on": "2017-01-22T22:50:24.512275Z"
},
{
"id": 8,
"name": "Shipping Template",
"slug": "shipping-template-v1-0-0",
"org": "arch-systems",
"version": "v1.0.0",
"extra_data": {
"web": {
"projectTemplateSlug": "shipping"
}
},
"created_on": "2017-08-31T01:52:39.851213Z"
},
{
"id": 9,
"name": "Simple Template",
"slug": "simple-template-v1-0-0",
"org": "arch-systems",
"version": "v1.0.0",
"extra_data": {
"web": {
"projectTemplateSlug": "simple"
}
},
"created_on": "2017-09-04T23:45:16.642470Z"
},
{
"id": 7,
"name": "Water Meter",
"slug": "water-meter-v1-1-0",
"org": "arch-systems",
"version": "v1.1.0",
"extra_data": {
"web": {
"projectTemplateSlug": "default"
}
},
"created_on": "2017-03-17T06:15:44.410131Z"
}
];
var arch_internal_org = {
"id": "564c54b5-19df-4fe0-9655-92542a2d0932",
"name": "Arch - Internal",
"slug": "arch-internal",
"about": "Internal Projects for Testing",
"created_on": "2016-11-04T00:48:13.033551Z",
"created_by": "david",
"avatar": {
"thumbnail": "https://media.iotile.cloud/prod/images/3e5554ff-0e4d-4a10-b299-415e143c6931/thumbnail.jpg",
"tiny": "https://media.iotile.cloud/prod/images/3e5554ff-0e4d-4a10-b299-415e143c6931/tiny.jpg"
}
};
var arch_systems_org = {
"id": "0e1031ba-b4b1-48e1-873c-73155b30c038",
"name": "Arch Systems",
"slug": "arch-systems",
"about": "",
"created_on": "2016-11-04T00:42:34.151136Z",
"created_by": "david",
"avatar": {
"thumbnail": "https://media.iotile.cloud/prod/images/09592eb4-0a84-4394-bcc6-e2205235a8b8/thumbnail.jpg",
"tiny": "https://media.iotile.cloud/prod/images/09592eb4-0a84-4394-bcc6-e2205235a8b8/tiny.jpg"
}
};
var arch_internal_membership = {
"user": "kaylie",
"user_details": {
"email": "kaylie@arch-iot.com",
"username": "kaylie",
"name": "Kaylie DeHart",
"tagline": "Software Engineer [Mobile] @Arch",
"avatar": {
"tiny": "https://secure.gravatar.com/avatar/59dfdaa43783adc9adebdaa55a768c27?s=28&d=identicon",
"thumbnail": "https://secure.gravatar.com/avatar/59dfdaa43783adc9adebdaa55a768c27?s=80&d=identicon"
}
},
"created_on": "2017-04-17T23:00:06Z",
"is_active": true,
"is_org_admin": true
};
var arch_systems_membership = {
"user": "kaylie",
"user_details": {
"email": "kaylie@arch-iot.com",
"username": "kaylie",
"name": "Kaylie DeHart",
"tagline": "Software Engineer [Mobile] @Arch",
"avatar": {
"tiny": "https://secure.gravatar.com/avatar/59dfdaa43783adc9adebdaa55a768c27?s=28&d=identicon",
"thumbnail": "https://secure.gravatar.com/avatar/59dfdaa43783adc9adebdaa55a768c27?s=80&d=identicon"
}
},
"created_on": "2017-04-17T23:00:06Z",
"is_active": true,
"is_org_admin": false
};
var soil_proj = {
"id": "5311e938-1150-4d40-bc66-e2319d112655",
"name": "Mobile App Testing Project - Soil",
"slug": "p--0000-006d",
"gid": "0000-006d",
"org": "arch-internal",
"about": "",
"project_template": null,
"page": {
"label": "Water Meter",
"id": 2,
"slug": "water-meter"
},
"created_on": "2017-03-20T01:02:56.295859Z",
"created_by": "david"
};
var water_proj = {
"id": "04d10130-db9e-452e-a725-5cbb1a1e1ae4",
"name": "Mobile App Testing Project - Water",
"slug": "p--0000-006e",
"gid": "0000-006e",
"org": "arch-internal",
"about": "",
"project_template": null,
"page": {
"label": "Water Meter",
"id": 2,
"slug": "water-meter"
},
"created_on": "2017-03-20T01:02:56.314521Z",
"created_by": "david"
};
var sg = [
{
"id": 18,
"name": "4-420-1-flow ProtoPod",
"slug": "4-420-1-flow-protopod-v1-0-0",
"org": "arch-systems",
"project_template": "default-template-v1-0-0",
"variable_templates": [
{
"id": 49,
"label": "IO 1",
"lid_hex": "5001",
"derived_lid_hex": "",
"var_type": "water-meter-volume",
"default_input_unit": "in--water-meter-volume--gallons",
"default_output_unit": "out--water-meter-volume--gallons",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 50,
"label": "IO 2",
"lid_hex": "5005",
"derived_lid_hex": "",
"var_type": "420-milliamps",
"default_input_unit": "in--420-milliamps--milliamps",
"default_output_unit": "out--420-milliamps--milliamps",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 51,
"label": "IO 3",
"lid_hex": "500c",
"derived_lid_hex": "",
"var_type": "420-milliamps",
"default_input_unit": "in--420-milliamps--milliamps",
"default_output_unit": "out--420-milliamps--milliamps",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 52,
"label": "IO 4",
"lid_hex": "500d",
"derived_lid_hex": "",
"var_type": "420-milliamps",
"default_input_unit": "in--420-milliamps--milliamps",
"default_output_unit": "out--420-milliamps--milliamps",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 53,
"label": "IO 5",
"lid_hex": "500e",
"derived_lid_hex": "",
"var_type": "420-milliamps",
"default_input_unit": "in--420-milliamps--milliamps",
"default_output_unit": "out--420-milliamps--milliamps",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 54,
"label": "Pulse 1",
"lid_hex": "100b",
"derived_lid_hex": "",
"var_type": "water-meter-flow",
"default_input_unit": "in--water-meter-flow--gallons",
"default_output_unit": "out--water-meter-flow--gallons-per-min",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": true,
"web_only": false
},
{
"id": 55,
"label": "RT 2",
"lid_hex": "1011",
"derived_lid_hex": "",
"var_type": "420-milliamps",
"default_input_unit": "in--420-milliamps--milliamps",
"default_output_unit": "out--420-milliamps--milliamps",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": true,
"web_only": false
},
{
"id": 56,
"label": "RT 3",
"lid_hex": "1016",
"derived_lid_hex": "",
"var_type": "420-milliamps",
"default_input_unit": "in--420-milliamps--milliamps",
"default_output_unit": "out--420-milliamps--milliamps",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": true,
"web_only": false
},
{
"id": 57,
"label": "RT 4",
"lid_hex": "1017",
"derived_lid_hex": "",
"var_type": "420-milliamps",
"default_input_unit": "in--420-milliamps--milliamps",
"default_output_unit": "out--420-milliamps--milliamps",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": true,
"web_only": false
},
{
"id": 58,
"label": "RT 5",
"lid_hex": "1018",
"derived_lid_hex": "",
"var_type": "420-milliamps",
"default_input_unit": "in--420-milliamps--milliamps",
"default_output_unit": "out--420-milliamps--milliamps",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": true,
"web_only": false
}
],
"display_widget_templates": [
{
"id": 41,
"label": "IO 1",
"lid_hex": "5001",
"var_type": "water-meter-volume",
"derived_unit_type": "",
"show_in_app": false,
"show_in_web": true
},
{
"id": 42,
"label": "IO 2",
"lid_hex": "5005",
"var_type": "420-milliamps",
"derived_unit_type": "",
"show_in_app": false,
"show_in_web": true
},
{
"id": 43,
"label": "IO 3",
"lid_hex": "500c",
"var_type": "420-milliamps",
"derived_unit_type": "",
"show_in_app": false,
"show_in_web": true
},
{
"id": 44,
"label": "IO 4",
"lid_hex": "500d",
"var_type": "420-milliamps",
"derived_unit_type": "",
"show_in_app": false,
"show_in_web": true
},
{
"id": 45,
"label": "IO 5",
"lid_hex": "500e",
"var_type": "420-milliamps",
"derived_unit_type": "",
"show_in_app": false,
"show_in_web": true
},
{
"id": 46,
"label": "RT 1",
"lid_hex": "100b",
"var_type": "420-milliamps",
"derived_unit_type": "",
"show_in_app": true,
"show_in_web": false
},
{
"id": 47,
"label": "RT 2",
"lid_hex": "1011",
"var_type": "420-milliamps",
"derived_unit_type": "",
"show_in_app": true,
"show_in_web": false
},
{
"id": 48,
"label": "RT 3",
"lid_hex": "1016",
"var_type": "420-milliamps",
"derived_unit_type": "",
"show_in_app": true,
"show_in_web": false
},
{
"id": 49,
"label": "RT 4",
"lid_hex": "1017",
"var_type": "420-milliamps",
"derived_unit_type": "",
"show_in_app": true,
"show_in_web": false
},
{
"id": 50,
"label": "RT 5",
"lid_hex": "1018",
"var_type": "420-milliamps",
"derived_unit_type": "",
"show_in_app": true,
"show_in_web": false
}
],
"ui_extra": {
"mobile": {
"controller": "defaultCtrl",
"template": "default",
"ioInfo": {
"map": {
"5001": {
"label": "IO 1",
"settingsController": "defaultSettingsCtrl",
"settingsTemplate": "default-settings",
"derived": {
"realtime": {
"label": "Flow 1",
"lid": "100b"
}
}
},
"500d": {
"label": "IO 4",
"settingsController": "defaultSettingsCtrl",
"settingsTemplate": "default-settings",
"derived": {
"realtime": {
"label": "IO 4",
"lid": "1017"
}
}
},
"500e": {
"label": "IO 5",
"settingsController": "defaultSettingsCtrl",
"settingsTemplate": "default-settings",
"derived": {
"realtime": {
"label": "IO 5",
"lid": "1018"
}
}
},
"5005": {
"label": "IO 2",
"settingsController": "defaultSettingsCtrl",
"settingsTemplate": "default-settings",
"derived": {
"realtime": {
"label": "IO 2",
"lid": "1011"
}
}
},
"500c": {
"label": "IO 3",
"settingsController": "defaultSettingsCtrl",
"settingsTemplate": "default-settings",
"derived": {
"realtime": {
"label": "IO 3",
"lid": "1016"
}
}
}
},
"order": [
"5001",
"5005",
"500c",
"500d",
"500e"
]
},
"other": null
},
"web": {
"pageTemplateSlug": "default"
}
},
"major_version": 1,
"minor_version": 0,
"patch_version": 0,
"created_on": "2017-06-15T22:16:25.050506Z"
},
{
"id": 12,
"name": "Accelerometer",
"slug": "accelerometer-v0-1-0",
"org": "arch-systems",
"project_template": "default-template-v1-0-0",
"variable_templates": [
{
"id": 32,
"label": "RT X",
"lid_hex": "1012",
"derived_lid_hex": "",
"var_type": "default",
"default_input_unit": "in--default--unit",
"default_output_unit": "out--default--unit",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 33,
"label": "RT Y",
"lid_hex": "1013",
"derived_lid_hex": "",
"var_type": "default",
"default_input_unit": "in--default--unit",
"default_output_unit": "out--default--unit",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 34,
"label": "RT Z",
"lid_hex": "1014",
"derived_lid_hex": "",
"var_type": "default",
"default_input_unit": "in--default--unit",
"default_output_unit": "out--default--unit",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 27,
"label": "ACC ST",
"lid_hex": "5006",
"derived_lid_hex": "",
"var_type": "default",
"default_input_unit": "in--default--unit",
"default_output_unit": "out--default--unit",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 28,
"label": "ACC X",
"lid_hex": "5007",
"derived_lid_hex": "",
"var_type": "default",
"default_input_unit": "in--default--unit",
"default_output_unit": "out--default--unit",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 29,
"label": "ACC Y",
"lid_hex": "5008",
"derived_lid_hex": "",
"var_type": "default",
"default_input_unit": "in--default--unit",
"default_output_unit": "out--default--unit",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 30,
"label": "ACC Z",
"lid_hex": "5009",
"derived_lid_hex": "",
"var_type": "default",
"default_input_unit": "in--default--unit",
"default_output_unit": "out--default--unit",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 31,
"label": "ACC SLEEP",
"lid_hex": "500a",
"derived_lid_hex": "",
"var_type": "default",
"default_input_unit": "in--default--unit",
"default_output_unit": "out--default--unit",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
}
],
"display_widget_templates": [
{
"id": 19,
"label": "Status",
"lid_hex": "5006",
"var_type": "default",
"derived_unit_type": "",
"show_in_app": false,
"show_in_web": true
},
{
"id": 20,
"label": "X",
"lid_hex": "5007",
"var_type": "default",
"derived_unit_type": "",
"show_in_app": false,
"show_in_web": true
},
{
"id": 21,
"label": "Y",
"lid_hex": "5008",
"var_type": "default",
"derived_unit_type": "",
"show_in_app": false,
"show_in_web": true
},
{
"id": 22,
"label": "Z",
"lid_hex": "5009",
"var_type": "default",
"derived_unit_type": "",
"show_in_app": false,
"show_in_web": true
},
{
"id": 23,
"label": "Sleep",
"lid_hex": "500a",
"var_type": "default",
"derived_unit_type": "",
"show_in_app": false,
"show_in_web": true
},
{
"id": 24,
"label": "RT X",
"lid_hex": "1012",
"var_type": "default",
"derived_unit_type": "",
"show_in_app": true,
"show_in_web": false
},
{
"id": 25,
"label": "RT Y",
"lid_hex": "1013",
"var_type": "default",
"derived_unit_type": "",
"show_in_app": true,
"show_in_web": false
},
{
"id": 26,
"label": "RT Z",
"lid_hex": "1014",
"var_type": "default",
"derived_unit_type": "",
"show_in_app": true,
"show_in_web": false
}
],
"ui_extra": {
"mobile": {
"controller": "defaultCtrl",
"template": "default",
"ioInfo": {
"map": {
"5008": {
"label": "Y",
"settingsController": "defaultSettingsCtrl",
"settingsTemplate": "default-settings",
"derived": {
"realtime": {
"label": "RT Y",
"lid": "1013"
}
}
},
"5009": {
"label": "Z",
"settingsController": "defaultSettingsCtrl",
"settingsTemplate": "default-settings",
"derived": {
"realtime": {
"label": "RT Z",
"lid": "1014"
}
}
},
"5007": {
"label": "X",
"settingsController": "defaultSettingsCtrl",
"settingsTemplate": "default-settings",
"derived": {
"realtime": {
"label": "RT X",
"lid": "1012"
}
}
}
},
"order": [
"5007",
"5008",
"5009"
]
},
"other": null
},
"web": {
"pageTemplateSlug": "default"
}
},
"major_version": 0,
"minor_version": 1,
"patch_version": 0,
"created_on": "2017-03-28T00:15:01.377573Z"
},
{
"id": 19,
"name": "Development",
"slug": "development-v1-0-0",
"org": "arch-systems",
"project_template": "default-template-v1-0-0",
"variable_templates": [],
"display_widget_templates": [],
"ui_extra": {
"mobile": {
"controller": "defaultCtrl",
"template": "default",
"ioInfo": null,
"other": null
},
"web": {
"pageTemplateSlug": "proto"
}
},
"major_version": 1,
"minor_version": 0,
"patch_version": 0,
"created_on": "2017-06-23T05:40:38.385443Z"
},
{
"id": 3,
"name": "Double Soil Moisture",
"slug": "double-soil-moisture-v1-0-0",
"org": "arch-systems",
"project_template": null,
"variable_templates": [],
"display_widget_templates": [],
"ui_extra": {
"mobile": {
"controller": "defaultCtrl",
"template": "default",
"ioInfo": {
"map": {
"5001": {
"label": "IO 1",
"settingsController": "defaultSettingsCtrl",
"settingsTemplate": "default-settings"
},
"5002": {
"label": "IO 2",
"settingsController": "defaultSettingsCtrl",
"settingsTemplate": "default-settings"
}
},
"order": [
"5001",
"5002"
]
},
"other": null
}
},
"major_version": 1,
"minor_version": 0,
"patch_version": 0,
"created_on": "2017-01-26T06:26:21.206491Z"
},
{
"id": 7,
"name": "Double Soil Moisture",
"slug": "double-soil-moisture-v1-1-0",
"org": "arch-systems",
"project_template": "default-template-v1-0-0",
"variable_templates": [
{
"id": 7,
"label": "IO 1",
"lid_hex": "5001",
"derived_lid_hex": "",
"var_type": "soil-moisture-percent",
"default_input_unit": "in--soil-moisture-percent--percent",
"default_output_unit": "out--soil-moisture-percent--percent",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 8,
"label": "IO 2",
"lid_hex": "5002",
"derived_lid_hex": "",
"var_type": "soil-moisture-percent",
"default_input_unit": "in--soil-moisture-percent--percent",
"default_output_unit": "out--soil-moisture-percent--percent",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 9,
"label": "Sensor 1",
"lid_hex": "100a",
"derived_lid_hex": "",
"var_type": "soil-moisture-percent",
"default_input_unit": "in--soil-moisture-percent--percent",
"default_output_unit": "out--soil-moisture-percent--percent",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": true,
"web_only": false
},
{
"id": 10,
"label": "Sensor 2",
"lid_hex": "100b",
"derived_lid_hex": "",
"var_type": "soil-moisture-percent",
"default_input_unit": "in--soil-moisture-percent--percent",
"default_output_unit": "out--soil-moisture-percent--percent",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": true,
"web_only": false
}
],
"display_widget_templates": [
{
"id": 1,
"label": "IO 1",
"lid_hex": "5001",
"var_type": "soil-moisture-percent",
"derived_unit_type": "",
"show_in_app": false,
"show_in_web": true
},
{
"id": 8,
"label": "IO Realtime 1",
"lid_hex": "100a",
"var_type": "soil-moisture-percent",
"derived_unit_type": "",
"show_in_app": true,
"show_in_web": false
},
{
"id": 2,
"label": "IO 2",
"lid_hex": "5002",
"var_type": "soil-moisture-percent",
"derived_unit_type": "",
"show_in_app": false,
"show_in_web": true
},
{
"id": 9,
"label": "IO Realtime 2",
"lid_hex": "100b",
"var_type": "soil-moisture-percent",
"derived_unit_type": "",
"show_in_app": true,
"show_in_web": false
}
],
"ui_extra": {
"mobile": {
"controller": "defaultCtrl",
"template": "default",
"ioInfo": {
"map": {
"5001": {
"label": "IO 1",
"settingsController": "defaultSettingsCtrl",
"settingsTemplate": "default-settings",
"derived": {
"realtime": {
"label": "Realtime IO 1",
"lid": "100a"
}
}
},
"5002": {
"label": "IO 2",
"settingsController": "defaultSettingsCtrl",
"settingsTemplate": "default-settings",
"derived": {
"realtime": {
"label": "Realtime IO 2",
"lid": "100b"
}
}
}
},
"order": [
"5001",
"5002"
]
},
"other": null
}
},
"major_version": 1,
"minor_version": 1,
"patch_version": 0,
"created_on": "2017-03-17T06:27:58.682673Z"
},
{
"id": 10,
"name": "Double Soil Moisture",
"slug": "double-soil-moisture-v2-0-0",
"org": "arch-systems",
"project_template": "default-template-v1-0-0",
"variable_templates": [
{
"id": 19,
"label": "IO 1",
"lid_hex": "5003",
"derived_lid_hex": "",
"var_type": "soil-moisture-percent",
"default_input_unit": "in--soil-moisture-percent--percent",
"default_output_unit": "out--soil-moisture-percent--percent",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 20,
"label": "IO 2",
"lid_hex": "5004",
"derived_lid_hex": "",
"var_type": "soil-moisture-percent",
"default_input_unit": "in--soil-moisture-percent--percent",
"default_output_unit": "out--soil-moisture-percent--percent",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 21,
"label": "Sensor 1",
"lid_hex": "100f",
"derived_lid_hex": "",
"var_type": "soil-moisture-percent",
"default_input_unit": "in--soil-moisture-percent--percent",
"default_output_unit": "out--soil-moisture-percent--percent",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": true,
"web_only": false
},
{
"id": 22,
"label": "Sensor 2",
"lid_hex": "1010",
"derived_lid_hex": "",
"var_type": "soil-moisture-percent",
"default_input_unit": "in--soil-moisture-percent--percent",
"default_output_unit": "out--soil-moisture-percent--percent",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": true,
"web_only": false
}
],
"display_widget_templates": [
{
"id": 11,
"label": "IO 1",
"lid_hex": "5003",
"var_type": "soil-moisture-percent",
"derived_unit_type": "",
"show_in_app": false,
"show_in_web": true
},
{
"id": 12,
"label": "IO Realtime 1",
"lid_hex": "100f",
"var_type": "soil-moisture-percent",
"derived_unit_type": "",
"show_in_app": true,
"show_in_web": false
},
{
"id": 13,
"label": "IO 2",
"lid_hex": "5004",
"var_type": "soil-moisture-percent",
"derived_unit_type": "",
"show_in_app": false,
"show_in_web": true
},
{
"id": 14,
"label": "IO Realtime 2",
"lid_hex": "1010",
"var_type": "soil-moisture-percent",
"derived_unit_type": "",
"show_in_app": true,
"show_in_web": false
}
],
"ui_extra": {
"mobile": {
"controller": "defaultCtrl",
"template": "default",
"ioInfo": {
"map": {
"5004": {
"label": "IO 2",
"settingsController": "defaultSettingsCtrl",
"settingsTemplate": "default-settings",
"derived": {
"realtime": {
"label": "Realtime IO 2",
"lid": "1010"
}
}
},
"5003": {
"label": "IO 1",
"settingsController": "defaultSettingsCtrl",
"settingsTemplate": "default-settings",
"derived": {
"realtime": {
"label": "Realtime IO 1",
"lid": "100f"
}
}
}
},
"order": [
"5003",
"5004"
]
},
"other": null
},
"web": {
"pageTemplateSlug": "default"
}
},
"major_version": 2,
"minor_version": 0,
"patch_version": 0,
"created_on": "2017-03-22T02:36:28.932715Z"
},
{
"id": 14,
"name": "Dust Sensor",
"slug": "dust-sensor-v1-0-0",
"org": "arch-systems",
"project_template": "default-template-v1-0-0",
"variable_templates": [
{
"id": 35,
"label": "IO 1",
"lid_hex": "500b",
"derived_lid_hex": "",
"var_type": "dust-density",
"default_input_unit": "in--dust-density--mgm3",
"default_output_unit": "out--dust-density--mgm3",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 36,
"label": "Fast Density 1",
"lid_hex": "1015",
"derived_lid_hex": "",
"var_type": "dust-density",
"default_input_unit": "in--dust-density--mgm3",
"default_output_unit": "out--dust-density--mgm3",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": true,
"web_only": false
}
],
"display_widget_templates": [
{
"id": 27,
"label": "IO 1",
"lid_hex": "500b",
"var_type": "420-milliamps",
"derived_unit_type": "",
"show_in_app": false,
"show_in_web": true
},
{
"id": 28,
"label": "Fast Density 1",
"lid_hex": "1015",
"var_type": "420-milliamps",
"derived_unit_type": "",
"show_in_app": true,
"show_in_web": false
}
],
"ui_extra": {
"mobile": {
"controller": "defaultCtrl",
"template": "default",
"ioInfo": {
"map": {
"500b": {
"label": "IO 1",
"settingsController": "defaultSettingsCtrl",
"settingsTemplate": "default-settings",
"derived": {
"realtime": {
"label": "IO 1",
"lid": "1015"
}
}
}
},
"order": [
"500b"
]
},
"other": null
},
"web": {
"pageTemplateSlug": "default"
}
},
"major_version": 1,
"minor_version": 0,
"patch_version": 0,
"created_on": "2017-04-14T06:07:18.184517Z"
},
{
"id": 15,
"name": "Dust Sensor",
"slug": "dust-sensor-v1-1-0",
"org": "arch-systems",
"project_template": "default-template-v1-0-0",
"variable_templates": [
{
"id": 37,
"label": "IO 1",
"lid_hex": "500b",
"derived_lid_hex": "",
"var_type": "default",
"default_input_unit": "in--default--unit",
"default_output_unit": "out--default--unit",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": false,
"web_only": false
},
{
"id": 38,
"label": "Fast Density 1",
"lid_hex": "1015",
"derived_lid_hex": "",
"var_type": "default",
"default_input_unit": "in--default--unit",
"default_output_unit": "out--default--unit",
"m": 1,
"d": 1,
"o": 0.0,
"app_only": true,
"web_only": false
}
],
"display_widget_templates": [
{
"id": 29,
"label": "IO 1",
"lid_hex": "500b",
"var_type": "default",
"derived_unit_type": "",
"show_in_app": false,
"show_in_web": true
},
{
"id": 30,
"label": "Fast Density 1",
"lid_hex": "1015",
"var_type": "default",
"derived_unit_type": "",
"show_in_app": true,
"show_in_web": false
}
],
"ui_extra": {
"mobile": {
"controller": "defaultCtrl",
"template": "default",
"ioInfo": {
"map": {
"500b": {
"label": "IO 1",
"settingsController": "defaultSettingsCtrl",
"settingsTemplate": "default-settings",