customer create

This commit is contained in:
Nweni
2019-11-19 09:16:55 +06:30
parent 5dc93ef2f8
commit aad153a4ef
11 changed files with 109 additions and 30 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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")

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,7 @@
if @result && @cus
json.status true
json.sent_pin true
else
json.status false
json.message "Customer Not Found"
end

View File

@@ -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

View File

@@ -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]

View File

@@ -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

BIN
dump.rdb

Binary file not shown.