Skip to content

Instantly share code, notes, and snippets.

@gumayunov
Created March 10, 2012 10:48
Show Gist options
  • Save gumayunov/2011135 to your computer and use it in GitHub Desktop.
Save gumayunov/2011135 to your computer and use it in GitHub Desktop.
title Подача заявки на бесплатный аккаунт БВ

Actor->HomeController: GET /ownership/
HomeController-->Actor: 200 description text

alt Гость

  Actor->RequestsController: GET /ownership/requests/new
  RequestsController-->Actor: 200, email, fio
  Actor->RequestsController: POST /ownership/requests
  RequestsController-->Actor: 302 /ownership/requests/:ID/confirmation

  Actor->ConfirmationsController: GET /ownership/requests/:ID/confirmation

  alt Email получен
    Actor->ConfirmationsController: GET /ownership/requests/:ID/confirm/?token=TOKEN
    ConfirmationsController-->Actor: 302 /ownership/requests/:ID/business/search
  else Не получен
    Actor->ConfirmationsController: PUT /ownership/requests/:ID/confirmation
    RequestsController-->Actor: 302 /ownership/requests/:ID/confirmation
    Actor->ConfirmationsController: GET /ownership/requests/:ID/confirm/?token=TOKEN
    ConfirmationsController-->Actor: 302 /ownership/requests/:ID/business/search
  end

else Тюльпер

  Actor->RequestsController: GET /ownership/requests/new/
  RequestsController-->Actor: 302 /ownership/requests/:ID/business/search

end

Actor->BusinessesController: GET /ownership/requests/:ID/business/search
BusinessesController-->Actor: 200, business search form

alt Бизнес найден
  Actor->BusinessesController: POST /ownership/requests/:ID/business/binding
  BusinessesController-->Actor: 302 /ownership/requests/:ID/edit
else Нет готового бизнеса
  Actor->BusinessesController: GET /ownership/requests/:ID/business/new
  Actor->BusinessesController: POST /ownership/requests/:ID/business/
  BusinessesController-->Actor: 302 /ownership/requests/:ID/edit
end

Actor->RequestsController: GET /ownership/requests/:ID/edit
Actor->RequestsController: PUT /ownership/requests/:ID
RequestsController-->Actor: 302 /ownership/requests/:ID

Actor->RequestsController: GET /ownership/requests/:ID
RequestsController-->Actor: 200, "Заявка принята"

Схема

title Подача заявки на платный аккаунт БВ

Actor->Premium_HomeController: GET /ownership/premium/
Premium_HomeController-->Actor: 200 description text

Actor->Premium_RequestsController: GET /ownership/premium/requests/new


alt Гость

  Actor->Premium_RequestsController: POST /ownership/premium/requests/
  Premium_RequestsController-->Actor: 302 /ownership/premium/requests/:ID/confirmation
  Actor->Premium_ConfirmationsController: GET /ownership/premium/requests/:ID/confirmiation

  alt Email не получен
    Actor->Premium_ConfirmationsController: PUT /ownership/premium/requests/:ID/confirmation
    Premium_ConfirmationsController-->Actor: 302 /ownership/premium/requests/:ID/confirmation
    Actor->Premium_ConfirmationsController: GET /ownership/premium/requests/:ID/confirmiation

    Actor->Premium_RequestsController: GET /ownership/premium/requests/:ID/confirm?token=TOKEN
  end

  Actor->Premium_RequestsController: GET /ownership/premium/requests/:ID/confirm?token=TOKEN
  Premium_RequestsController-->Actor: 302 /ownership/premium/requests/:ID

else Тюльпер

  Actor->Premium_RequestsController: POST /ownership/premium/requests/
  Premium_RequestsController-->Actor: 302 /ownership/premium/requests/:ID

end

Actor->Premium_RequestsController: GET /ownership/premium/requests/:ID
Premium_RequestsController-->Actor: 200, "Заявка принята"

Схема

title Завершение регистрации БВ (платный/бесплатный)

Actor->RegistrationsController: GET /ownership/requests/:ID/registration/new/?token=TOKEN
RegistrationsController-->Actor: 200, form

Actor->RegistrationsController: POST /ownership/requests/:ID/registration

RegistrationsController-->Actor: 302, /ownership/dashboard

Схема

 ▾ controllers/
   ▾ ownership/                       
     ▾ premium/                       
       ▾ requests/                    
           application_controller.rb  
           confirmations_controller.rb
           registrations_controller.rb
         application_controller.rb    
         home_controller.rb           
         requests_controller.rb       
     ▾ requests/                      
         application_controller.rb    
         businesses_controller.rb     
         confirmations_controller.rb  
         registrations_controller.rb  
       application_controller.rb      
       dashboards_controller.rb       
       home_controller.rb             
       requests_controller.rb                                    
namespace :ownership, :module => :ownership do
match '/' => "home#show"
resources :requests, :only => [:new, :create, :show] do
scope :module => :requests do
resource :business, :only => [:new, :create] do
member do
get :search
post :binding, :action => :bind
end
end
resource :confirmation, :only => [:show, :update]
resource :registration, :only => [:new, :create]
end
member do
get :confirm
end
end
namespace :premium, :module => :premium do
match '/' => "home#show"
resources :requests, :only => [:new, :create, :show] do
scope :module => :requests do
resource :confirmation, :only => [:show, :update]
resource :registration, :only => [:new, :create]
end
member do
get :confirm
end
end
end
resource :dashboard, :only => [:show]
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment