Class: AddStudentController

Inherits:
Object
  • Object
show all
Defined in:
lib/source/add_controller.rb,
lib/source/database/add_controller.rb

Direct Known Subclasses

UpdateStudentController

Instance Method Summary collapse

Constructor Details

#initialize(student_list) ⇒ AddStudentController

Returns a new instance of AddStudentController.



6
7
8
9
# File 'lib/source/add_controller.rb', line 6

def initialize(student_list)
  @student_list = student_list
  @logger = Logger.new('controller_add.log') # Указывает путь и имя файла для логов
end

Instance Method Details

#add_view(view) ⇒ Object

привязка view



12
13
14
# File 'lib/source/add_controller.rb', line 12

def add_view(view)
  @view = view
end

#execute ⇒ Object



16
17
18
19
# File 'lib/source/add_controller.rb', line 16

def execute
  @view.execute
  @logger.info('Executing add student operation')
end

#save_student(student) ⇒ Object



21
22
23
24
# File 'lib/source/add_controller.rb', line 21

def save_student(student)
  @logger.info('Saving student')
  @student_list.add_student(student)
end

#validate_fields(fields) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/source/add_controller.rb', line 27

def validate_fields(fields)
  @logger.info('Validating fields')
  required_fields = [:first_name, :middle_name, :surname] # список обязательных полей
  if required_fields.all? { |field| fields.key?(field) }
    student = Student.new(
      first_name: fields[:first_name],
      middle_name: fields[:middle_name],
      surname: fields[:surname],
      id: fields[:id] || nil,
      git: fields[:git] || nil,
      phone_number: fields[:phone_number] || nil,
      mail: fields[:mail] || nil,
      telegram: fields[:telegram] || nil
    )
    puts(student)
    return student
  else
    return nil
  end
rescue ArgumentError => e
  @logger.error("Error occurred while validating fields: #{e.message}")
  return nil
end