diff --git a/Gemfile b/Gemfile index d2d88c5..0876fbc 100644 --- a/Gemfile +++ b/Gemfile @@ -20,7 +20,7 @@ gem "acts_as_unvlogable" gem 'youtube_it' gem 'gotcha' gem "geocoder" - +gem 'httparty' #database gem 'mini_magick' gem 'mongoid', '> 2.1', '< 3.0.0' diff --git a/app/controllers/admin/module_store_controller.rb b/app/controllers/admin/module_store_controller.rb index 8c5674d..7eda752 100644 --- a/app/controllers/admin/module_store_controller.rb +++ b/app/controllers/admin/module_store_controller.rb @@ -1,5 +1,5 @@ class Admin::ModuleStoreController < OrbitBackendController - + before_filter :check_central_server_connection @@store = STORE_CONFIG[:store_settings]["url"] def index @@ -85,7 +85,7 @@ class Admin::ModuleStoreController < OrbitBackendController protected def get_extensions - extensions = JSON.parse(open("#{@@store}/api/extensions").read) + extensions = JSON.parse(open("#{@@store}/extensions").read) exist_exts = [] ext_file = File.new("#{Rails.root}/downloaded_extensions.rb", "r") @@ -112,7 +112,7 @@ class Admin::ModuleStoreController < OrbitBackendController end def get_extension(id) - JSON.parse(open("#{@@store}/api/extensions/#{id}").read) + JSON.parse(open("#{@@store}/extensions/#{id}").read) end def get_downloaded_extension diff --git a/app/controllers/admin/register_site_controller.rb b/app/controllers/admin/register_site_controller.rb new file mode 100644 index 0000000..7736d56 --- /dev/null +++ b/app/controllers/admin/register_site_controller.rb @@ -0,0 +1,10 @@ +class Admin::RegisterSiteController < OrbitBackendController + def index + end + + def register_site + site = Site.first + site.register_site + redirect_to admin_module_store_path + end +end \ No newline at end of file diff --git a/app/controllers/admin/sites_controller.rb b/app/controllers/admin/sites_controller.rb index 31ed337..2e492dd 100644 --- a/app/controllers/admin/sites_controller.rb +++ b/app/controllers/admin/sites_controller.rb @@ -147,13 +147,6 @@ class Admin::SitesController < OrbitBackendController render :text => "success" end - def generate_site_token - begin - self.site_token = SecureRandom.uuid.gsub('-','') - self.save - end - end - protected def update_design(design) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index f44590e..9f5fa92 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -480,10 +480,10 @@ class ApplicationController < ActionController::Base end def check_central_server_connection - site = Site.first - if site.site_token? + if @site.site_token? flash[:notice]="Connected to the Store" else + redirect_to admin_register_site_index_path flash[:notice]="To Access the Store Please Connect It" end end diff --git a/app/models/site.rb b/app/models/site.rb index f1de713..d1cfe57 100644 --- a/app/models/site.rb +++ b/app/models/site.rb @@ -98,10 +98,17 @@ class Site end def generate_site_token - begin + if self.site_token.nil? self.site_token = SecureRandom.uuid.gsub('-','') self.save end end + + def register_site + api_key = STORE_CONFIG[:store_settings]["api_key"] + self.generate_site_token + store = Store.new(self.id.to_s,self.site_token,api_key) + store.post_client(self.id.to_s,self.site_token,self.name) + end end diff --git a/app/views/admin/register_site/index.html.erb b/app/views/admin/register_site/index.html.erb new file mode 100644 index 0000000..cd8907f --- /dev/null +++ b/app/views/admin/register_site/index.html.erb @@ -0,0 +1 @@ +<%= link_to "Register", register_site_admin_register_site_index_path, :class => "btn btn-primary"%> diff --git a/config/routes.rb b/config/routes.rb index 573e814..bbfc832 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -220,6 +220,7 @@ Orbit::Application.routes.draw do get 'update_orbit' get 'restart_server' end + match 'sites/register_site' => "sites#register_site" resources :tags do collection do @@ -271,6 +272,12 @@ Orbit::Application.routes.draw do match 'template_store' => 'template_store#index' match 'template_store/download_theme' => "template_store#download_theme" match 'template_store/template/:id' => 'template_store#show', :as => :template_store_template + + resources :register_site, only: [:index] do + collection do + post 'register_site' + end + end # match 'template_store/cool_method' => "template_store#cool_method" end diff --git a/config/store_config.yml b/config/store_config.yml index def0151..a56920b 100644 --- a/config/store_config.yml +++ b/config/store_config.yml @@ -1,3 +1,3 @@ store_settings: - url: "http://store.tp.rulingcom.com" - api_key: "cc6ae8d0aa0a730792cf519225c40099" + url: "http://192.168.1.250:3000/api" + api_key: 'Token token="b38ba5f588a7c5072e88ee15737a4d33"' diff --git a/lib/store.rb b/lib/store.rb index 773454c..57a9f9a 100644 --- a/lib/store.rb +++ b/lib/store.rb @@ -1,9 +1,41 @@ +require 'httparty' class Store include HTTParty - base_uri 'http://localhost:3000' - def post(text) - options = { :body => {:status => text}, :token => @auth } - self.class.post('/api/clients', options) - end + format :json + base_uri STORE_CONFIG[:store_settings]["url"] + + def initialize(site_id,site_token,api_key) + @options_for_get = { + headers: { + "Authorization" => api_key, + "X_SiteToken" => site_token, + "X_SiteId" => site_id, + "Content-Type" => "application/json" + } + } + + @options_for_client = { + headers: { + "Authorization" => api_key, + "Content-Type" => "application/json" + } + } + end + + def templates(options={}) + options = @options_for_get + response = self.class.get('/templates', options) + puts response.request.last_uri.to_s + end + + def extensions(options={}) + options = @options_for_get + self.class.get('/extensions', options) + end + + def post_client(site_id,site_token,site_name) + options = @options_for_client.merge({ :body => {:site_name => site_name, :site_id => site_id, :site_token => site_token}.to_json }) + self.class.post('/clients', options ) + end end \ No newline at end of file