atlassian/themis

View on GitHub
themis/web/views/kinesis.details.js

Summary

Maintainability
C
1 day
Test Coverage
(function () {
  'use strict';

  var app = angular.module('app');

  app.controller('kinesisDetailsCtrl', function($scope, $stateParams, $interval, restClient, appConfig, appUtils) {

    var client = restClient;
    appConfig.section = 'kinesis';

    $scope.state = {};
    $scope.history = {};
    $scope.refreshing = {};
    $scope.settings = {};
    $scope.active_tab = 1;
    $scope.streamId = $stateParams.streamId;
    $scope.appUtils = appUtils;
    var timer = null;

    if($stateParams.tab) {
      var tabs = {
        'current': 1,
        'history': 2,
        'costs': 3,
        'settings': 4
      }
      $scope.active_tab = tabs[$stateParams.tab];
    }

    $scope.refresh = function() {
      $scope.state.loading = true;
      $scope.history.loading = true;
      client.then(function(client) {

        /* load current state */
        client.default.getKinesisState({stream_id: $scope.streamId}).then(function(obj) {
          $scope.$apply(function() {
            $scope.state.loading = false;
            $scope.state.data = obj.obj;
          });
        }, function(err) {
          $scope.state.loading = false;
          console.log(err);
        });

        /* load history */
        client.default.getKinesisHistory({stream_id: $scope.streamId}).then(function(obj) {
          $scope.$apply(function() {
            $scope.history.loading = false;
            $scope.history.data = obj.obj.results;
          });
        }, function(err) {
          $scope.history.loading = false;
          console.log(err);
        });

        /* load config */
        $scope.loadConfig();
      })
    };

    $scope.loadConfig = function() {
      $scope.settings.loading = true;
      appConfig.getConfig({
          resource: $stateParams.streamId
      }).then(function(config) {
        $scope.settings.loading = false;
        $scope.settings.config = config;
      }, function(err) {
        $scope.settings.loading = false;
        console.log(err);
      });
    };

    $scope.saveConfig = function() {
      $scope.settings.loading = true;
      var params = {
        resource: $stateParams.streamId
      };
      appConfig.setConfig($scope.settings.config, params).
      then(function(config) {
        $scope.settings.loading = false;
        $scope.settings.config = config;
      }, function(err) {
        $scope.settings.loading = false;
        console.log(err);
      });
    };

    $scope.refresh();

  });

})();