update from RIFT as of 696b75d2fe9fb046261b08c616f1bcf6c0b54a9b third try
Signed-off-by: Jeremy Mordkoff <Jeremy.Mordkoff@riftio.com>
Change-Id: Ib11aa03a2eff5a53c808342508a5d7bee7b202b8
diff --git a/skyquake/framework/source/model/index.js b/skyquake/framework/source/model/index.js
new file mode 100644
index 0000000..019ada0
--- /dev/null
+++ b/skyquake/framework/source/model/index.js
@@ -0,0 +1,7 @@
+import modelActions from './modelActions'
+import modelSource from './modelSource'
+
+export {
+ modelSource,
+ modelActions
+}
\ No newline at end of file
diff --git a/skyquake/framework/source/model/modelActions.js b/skyquake/framework/source/model/modelActions.js
new file mode 100644
index 0000000..41dbc00
--- /dev/null
+++ b/skyquake/framework/source/model/modelActions.js
@@ -0,0 +1,31 @@
+/*
+ *
+ * Copyright 2017 RIFT.IO Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+import Alt from 'widgets/skyquake_container/skyquakeAltInstance';
+
+class Actions {
+
+ constructor() {
+ this.generateActions(
+ 'loadModel',
+ 'processRequestSuccess',
+ 'processRequestInitiated',
+ 'processRequestFailure');
+ }
+}
+
+export default Alt.createActions(Actions);
diff --git a/skyquake/framework/source/model/modelSource.js b/skyquake/framework/source/model/modelSource.js
new file mode 100644
index 0000000..3779aa5
--- /dev/null
+++ b/skyquake/framework/source/model/modelSource.js
@@ -0,0 +1,128 @@
+/*
+ *
+ * Copyright 2017 RIFT.IO Inc
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+import rw from 'utils/rw'
+import modelActions from './modelActions'
+import Utils from 'utils/utils'
+import $ from 'jquery';
+
+const source = {
+ loadModel: function () {
+ return {
+ remote: function (state, path) {
+ return new Promise(function (resolve, reject) {
+ $.ajax({
+ url: '/model?path=' + path,
+ type: 'GET',
+ success: function (result) {
+ resolve(result);
+ },
+ error: function (xhr, errorType, errorMessage) {
+ console.log("There was an error updating the model: ", errorType, errorMessage, xhr);
+ reject({response: xhr.responseJSON, errorType, errorMessage});
+ }
+ });
+ })
+ },
+ success: modelActions.processRequestSuccess,
+ loading: modelActions.processRequestInitiated,
+ error: modelActions.processRequestFailure
+ }
+ },
+ updateModel: function () {
+ return {
+ remote: function (state, path, data) {
+ const url = path.reduce((url, node) => {
+ url += node[0] !== '[' ? '/' : '';
+ return url + node
+ }, `/model?path=/${state.path}`);
+ return new Promise(function (resolve, reject) {
+ $.ajax({
+ url: url,
+ type: 'PATCH',
+ data: data,
+ success: function (result) {
+ resolve(result);
+ },
+ error: function (xhr, errorType, errorMessage) {
+ console.log("There was an error updating the model: ", errorType, errorMessage, xhr);
+ reject({response: xhr.responseJSON, errorType, errorMessage});
+ }
+ });
+ })
+ },
+ success: modelActions.processRequestSuccess,
+ loading: modelActions.processRequestInitiated,
+ error: modelActions.processRequestFailure
+ }
+ },
+ createModel: function () {
+ return {
+ remote: function (state, path, data) {
+ const url = path.reduce((url, node) => {
+ url += node[0] !== '[' ? '/' : '';
+ return url + node
+ }, `/model?path=/${state.path}`);
+ return new Promise(function (resolve, reject) {
+ $.ajax({
+ url: url,
+ type: 'PUT',
+ data: data,
+ success: function (result) {
+ resolve(result);
+ },
+ error: function (xhr, errorType, errorMessage) {
+ console.log("There was an error updating the model: ", errorType, errorMessage, xhr);
+ reject({response: xhr.responseJSON, errorType, errorMessage});
+ }
+ });
+ })
+ },
+ success: modelActions.processRequestSuccess,
+ loading: modelActions.processRequestInitiated,
+ error: modelActions.processRequestFailure
+ }
+ },
+
+ deleteModel: function () {
+ return {
+ remote: function (state, path) {
+ const url = path.reduce((url, node) => {
+ url += node[0] !== '[' ? '/' : '';
+ return url + node
+ }, `/model?path=/${state.path}`);
+ return new Promise(function (resolve, reject) {
+ $.ajax({
+ url: url,
+ type: 'DELETE',
+ success: function (result) {
+ resolve(result);
+ },
+ error: function (xhr, errorType, errorMessage) {
+ console.log("There was an error updating the model: ", errorType, errorMessage, xhr);
+ reject({response: xhr.responseJSON, errorType, errorMessage});
+ }
+ });
+ })
+ },
+ success: modelActions.processRequestSuccess,
+ loading: modelActions.processRequestInitiated,
+ error: modelActions.processRequestFailure
+ }
+ }
+}
+module.exports = source;
\ No newline at end of file