Class: StudentCreateFormController

Inherits:
Object
  • Object
show all
Defined in:
lib/source/controllers/student_create_form_controller.rb

Instance Method Summary collapse

Constructor Details

#initialize(controller) ⇒ StudentCreateFormController

Returns a new instance of StudentCreateFormController.



7
8
9
10
# File 'lib/source/controllers/student_create_form_controller.rb', line 7

def initialize(controller)
  @controller = controller
  LoggerHolder.instance.debug('StudentCreateFormController: initialized')
end

Instance Method Details

#on_db_conn_error(e) ⇒ Object



41
42
43
44
45
46
47
# File 'lib/source/controllers/student_create_form_controller.rb', line 41

def on_db_conn_error(e)
  LoggerHolder.instance.debug('StudentCreateFormController: DB connection error:')
  LoggerHolder.instance.error(error.message)
  script = "display dialog \"Отсутсвует подключение к БД #{e.message}\" with title \"Ошибка\""
  system 'osascript', '-e', script
  exit(false)
end

#on_view_createdObject



12
13
14
15
16
17
18
# File 'lib/source/controllers/student_create_form_controller.rb', line 12

def on_view_created
  begin
    @student_rep = StudentList.new(StudentListDbAdapter.new)
  rescue SQLException::SQLException => e
    on_db_conn_error(e)
  end
end

#process_fields(fields) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/source/controllers/student_create_form_controller.rb', line 25

def process_fields(fields)
  last_name = fields.delete(:last_name)
  first_name = fields.delete(:first_name)
  paternal_name = fields.delete(:paternal_name)

  # TODO написать пользователю что он не прав
  return if last_name.nil? || first_name.nil? || paternal_name.nil?

  student = Student.new(last_name, first_name, paternal_name, **fields)

  @student_rep.add_student(student)
  @view.close
  @controller.view.refresh_current_page
  LoggerHolder.instance.debug('StudentCreateFormController: add student')
end

#view=(view) ⇒ Object



20
21
22
23
# File 'lib/source/controllers/student_create_form_controller.rb', line 20

def view=(view)
  @view = view
  LoggerHolder.instance.debug('StudentCreateFormController: setter view')
end