New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search

Changeset 80570


Ignore:
Timestamp:
07/14/11 23:35:23 (4 years ago)
Author:
derek@…
Message:

Added some basic port information verification, small refactor of port saving

  • Ensure that a submitted port exists in the MacPorts repository (port table) before saving
  • Renamed add_port_data to add_installed_ports
  • Moved port saving code from inside a loop to add_port helper method
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/gsoc11-statistics/stats-server/app/controllers/submissions_controller.rb

    r80569 r80570  
    3636    xcode_version    = os['xcode_version'] 
    3737    
    38     # Try and find an existing entry 
     38    # Try to find an existing entry 
    3939    os_stats = OsStatistic.find_by_user_id(user.id) 
    4040      
     
    5959  end 
    6060 
    61   def add_port_data(uuid, ports) 
    62     logger.debug "In add_port_data" 
     61  def add_port(uuid, macports_port, installed_port, month, year) 
     62    logger.debug {"Adding installed port #{installed_port['name']}"} 
     63         
     64    portEntry = InstalledPort.new(:uuid => uuid, 
     65                             :port_id => macports_port.id, 
     66                             :version => installed_port['version'], 
     67                             :variants => installed_port['variants'], 
     68                             :month => month, 
     69                             :year => year) 
     70                         
     71    if not portEntry.save 
     72     logger.debug "Unable to save port #{port['name']}" 
     73     logger.debug "Error message: #{portEntry.errors.full_messages}" 
     74   end 
     75 end 
     76 
     77  def add_installed_ports(uuid, installed_ports) 
     78    logger.debug "In add_installed_ports" 
    6379     
    64     if ports.nil? 
     80    if installed_ports.nil? 
    6581      return 
    6682    end 
     
    7086    year = current_time.year 
    7187     
    72     ports.each do |port| 
    73       logger.debug {"Adding port #{port}"} 
    74       port_id = 5 
    75       portEntry = InstalledPort.new(:uuid => uuid, 
    76                                :port_id => port_id, 
    77                                :version => port['version'], 
    78                                :variants => port['variants'], 
    79                                :month => month, 
    80                                :year => year) 
    81                            
    82       if not portEntry.save 
    83        logger.debug "Unable to save port #{port['name']}" 
    84        logger.debug "Error message: #{portEntry.errors.full_messages}" 
    85      end 
     88    installed_ports.each do |installed_port| 
     89      # Find the reported port in the MacPorts repository 
     90      macports_port = Port.find_by_name(installed_port['name']) 
     91 
     92      if macports_port.nil? 
     93        logger.debug {"Skipping unknown port #{installed_port['name']} - Not in MacPorts repository"} 
     94        next 
     95      end 
     96       
     97      # Update installed port information 
     98      add_port(uuid, macports_port, installed_port, month, year) 
    8699    end 
    87100  end 
     
    97110     
    98111    add_os_data(user, os) 
    99     add_port_data(json['id'], active_ports) 
     112    add_installed_ports(json['id'], active_ports) 
    100113 
    101114    respond_to do |format| 
Note: See TracChangeset for help on using the changeset viewer.