[CORD-3186] Adding CORD version to the gui
Change-Id: I4512ed6fce7f5dc2bb70dc1df6f5a919456fc60a
diff --git a/src/app/core/services/version-reader.ts b/src/app/core/services/version-reader.ts
new file mode 100644
index 0000000..3293fbc
--- /dev/null
+++ b/src/app/core/services/version-reader.ts
@@ -0,0 +1,55 @@
+
+
+/*
+ * Copyright 2017-present Open Networking Foundation
+
+ * 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 IPromise = angular.IPromise;
+
+export interface IXosVersionReaderService {
+ getVersion(): IPromise<string>;
+}
+
+interface ICORDVersion {
+ data: {
+ version: string;
+ };
+}
+
+export class XosVersionReaderService implements IXosVersionReaderService {
+
+ static $inject = ['$http', '$q', '$log'];
+
+ constructor(
+ private $http: angular.IHttpService,
+ private $q: angular.IQService,
+ private $log: angular.ILogService
+ ) {
+ }
+
+ public getVersion(): IPromise<string> {
+ const d = this.$q.defer();
+ this.$http.get(`/version.json`)
+ .then((res: ICORDVersion) => {
+ d.resolve(res.data.version);
+ })
+ .catch(e => {
+ this.$log.warn(`[XosVersionReaderService] Cannot read version`, e);
+ d.resolve('unknown');
+ });
+ return d.promise;
+ }
+
+}