diff --git a/app/controllers/api/phone_verification/verifications_controller.rb b/app/controllers/api/phone_verification/verifications_controller.rb deleted file mode 100644 index 077c4944..00000000 --- a/app/controllers/api/phone_verification/verifications_controller.rb +++ /dev/null @@ -1,27 +0,0 @@ -class Api::VerificationsController < ActionController::API - - def request_code - - phone_number = params[:phone_number] - - #TODO - user generate - - if @user.pin.nil? - @user.pin = rand(1000..9999) - @user.contact_no = phone_number - @user.pin_send_at = Time.now - @user.save - VerifyNumber.send_message(@user.contact_no, @user.pin) - #sent message - else - @user.contact_no = phone_number - @user.save - VerifyNumber.send_message(@user.contact_no, @user.pin) - #sent message - end - end - - def verify_code - end - -end \ No newline at end of file diff --git a/app/controllers/api/shops_controller.rb b/app/controllers/api/shops_controller.rb index 279af3f2..23d50ebc 100644 --- a/app/controllers/api/shops_controller.rb +++ b/app/controllers/api/shops_controller.rb @@ -3,7 +3,10 @@ class Api::ShopsController < Api::ApiController skip_before_action :authenticate def index - @shops = Shop.select('id,logo,name,shop_code,address,phone_no,cloud_url,cloud_token').all + @shops = Shop.select('id,logo,name,shop_code,address,phone_no').all end + def show + @shop = Shop.find_by_shop_code(params[:id]) + end end \ No newline at end of file diff --git a/app/controllers/api/verifications_controller.rb b/app/controllers/api/verifications_controller.rb new file mode 100644 index 00000000..1c2936fc --- /dev/null +++ b/app/controllers/api/verifications_controller.rb @@ -0,0 +1,26 @@ +class Api::VerificationsController < ActionController::API + + def new + phone_number = params[:phone_number] + + #TODO - user generate + @cus = Customer.new + @cus.draft_customer(phone_number, rand(1000..9999)) + if @cus.verify_status == false + # VerifyNumber.send_message(phone_number, @cus.pin_code) + @result = true + end + end + + def update + phone_number = params[:phone_number] + pin_code = params[:pin_code] + @cus = Customer.find_by_contact_no(phone_number) + if !@cus.nil? && @cus.pin_code.to_i == pin_code.to_i + @cus.verify_status = true + @cus.save + @result = true + end + end + +end \ No newline at end of file diff --git a/app/models/customer.rb b/app/models/customer.rb index 04d4449c..5f0d7c7d 100755 --- a/app/models/customer.rb +++ b/app/models/customer.rb @@ -11,12 +11,30 @@ class Customer < ApplicationRecord validates_presence_of :name, :contact_no, :email #,:card_no validates :contact_no, numericality: true #uniqueness: true, - validates :email, uniqueness: true,format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i, on: :create } + # validates :email, uniqueness: true,format: { with: /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\z/i, on: :create } # validates :card_no, uniqueness: true # validates :paypar_account_no, uniqueness: true paginates_per 50 + def draft_customer(phone, pin) + cus = Customer.find_by_contact_no(phone) + if cus.nil? + self.name = "User " + pin.to_s + self.contact_no = phone + self.email = pin.to_s + "@gmail.com" + self.pin_code = pin + self.pin_sent_at = Time.now + self.save + return self + else + cus.pin_code = pin + cus.pin_sent_at = Time.now + cus.save + return cus + end + end + def self.get_member_account(customer) membership = MembershipSetting.active.find_by_membership_type("paypar_url") memberaction = MembershipAction.active.find_by_membership_type("get_all_member_account") diff --git a/app/models/verify_number.rb b/app/models/verify_number.rb new file mode 100644 index 00000000..26c57057 --- /dev/null +++ b/app/models/verify_number.rb @@ -0,0 +1,24 @@ +class VerifyNumber < ApplicationRecord + + def self.send_message(phone, pin) + + url = "http://smspoh.com/api/http/send?key=5QfyN0OtGsFXnOqwtpVAGZCyPGP28nbX_Nm_oPsUw2ybq714T_951ycz3Ypl5URA&message=Doemal,+Pin+Code:+"+pin.to_s+"&recipients="+ phone.to_s + + puts url + begin + @result = HTTParty.get(url.to_str) + + rescue HTTParty::Error + response = {status: false, message: "Can't open membership server "} + rescue Net::OpenTimeout + response = { status: false , message: "Can't open membership server "} + rescue OpenURI::HTTPError + response = { status: false, message: "Can't open membership server "} + rescue SocketError + response = { status: false, message: "Can't open membership server "} + end + puts @result + puts "<><><><><><<><>><><" + end + +end diff --git a/app/views/api/shops/show.json.jbuilder b/app/views/api/shops/show.json.jbuilder new file mode 100644 index 00000000..8dc94179 --- /dev/null +++ b/app/views/api/shops/show.json.jbuilder @@ -0,0 +1,12 @@ +if @shop + json.status true + json.id @shop.id + json.logo @shop.logo + json.name @shop.name + json.shop_code @shop.shop_code + json.cloud_url @shop.cloud_url + json.cloud_token @shop.cloud_token +else + json.status false + json.message "Record Not Found" +end diff --git a/app/views/api/verifications/new.json.jbuilder b/app/views/api/verifications/new.json.jbuilder new file mode 100644 index 00000000..b4000002 --- /dev/null +++ b/app/views/api/verifications/new.json.jbuilder @@ -0,0 +1,7 @@ +if @result && @cus + json.status true + json.sent_pin true + else + json.status false + json.message "Customer Not Found" + end \ No newline at end of file diff --git a/app/views/api/verifications/update.json.jbuilder b/app/views/api/verifications/update.json.jbuilder new file mode 100644 index 00000000..97cd93a0 --- /dev/null +++ b/app/views/api/verifications/update.json.jbuilder @@ -0,0 +1,7 @@ +if @result && @cus + json.status true + json.message "Pin code verification succeeded" +else + json.status false + json.message "Customer Not Found Or Pin Code Verification Failed" +end \ No newline at end of file diff --git a/config/routes.rb b/config/routes.rb index ac62d41e..86902d34 100755 --- a/config/routes.rb +++ b/config/routes.rb @@ -43,8 +43,10 @@ scope "(:locale)", locale: /en|mm/ do #Session Login and Logout post 'authenticate' => "authenticate#create" delete 'authenticate' => "authenticate#destroy" + + resources :shops, only: [:index, :show] + resources :verifications, only: [:new, :update] - get 'get_shops' => "shops#index" namespace :restaurant do get 'zones' => "zones#index" resources :menu, only: [:index, :show] diff --git a/db/migrate/20191118072133_customer_pincode.rb b/db/migrate/20191118072133_customer_pincode.rb new file mode 100644 index 00000000..61e73a92 --- /dev/null +++ b/db/migrate/20191118072133_customer_pincode.rb @@ -0,0 +1,7 @@ +class CustomerPincode < ActiveRecord::Migration[5.1] + def change + add_column :customers, :pin_code, :integer + add_column :customers, :verify_status, :boolean, :default => false + add_column :customers, :pin_sent_at, :datetime + end +end diff --git a/dump.rdb b/dump.rdb index 9d8f3861..182008b2 100644 Binary files a/dump.rdb and b/dump.rdb differ