Task Description:
In this exercise, you are required to create a simple Ruby on Rails API endpoint. This task is designed to assess your knowledge of Rails routing, controllers, and basic data handling.
Duration:
20 minutes
Objective:
Your task is to convert a number into a string that contains raindrop sounds corresponding to certain potential factors. A factor is a number that evenly divides into another number, leaving no remainder. The simplest way to test if a number is a factor of another is to use the modulo operation.
The rules of raindrops are that if a given number:
| { | |
| "error""=>false", | |
| "executionTimeMS"=>127, | |
| "copyright""=>""Copyright 2023 Autodata, Inc. dba ChromeData. All rights reserved", | |
| "result""=>"{ | |
| "vinSubmitted""=>""5LMJJ3JT3GEL00715", | |
| "vinProcessed""=>""5LMJJ3JT3GEL00715", | |
| "validVin""=>true", | |
| "source""=>""E", | |
| "year""=>""2016", |
| { | |
| "error""=>false", | |
| "executionTimeMS"=>277, | |
| "copyright""=>""Copyright 2023 Autodata, Inc. dba ChromeData. All rights reserved", | |
| "result""=>"{ | |
| "vinSubmitted""=>""WP0CB29888U730223", | |
| "vinProcessed""=>""WP0CB29888U730223", | |
| "validVin""=>true", | |
| "source""=>""V", | |
| "year""=>""2008", |
| { | |
| "error""=>false", | |
| "executionTimeMS"=>83, | |
| "copyright""=>""Copyright 2023 Autodata, Inc. dba ChromeData. All rights reserved", | |
| "result""=>"{ | |
| "vinSubmitted""=>""5YFEPMAE4NP280618", | |
| "vinProcessed""=>""5YFEPMAE4NP280618", | |
| "validVin""=>true", | |
| "source""=>""E", | |
| "year""=>""2022", |
| { | |
| "error""=>false", | |
| "executionTimeMS"=>111, | |
| "copyright""=>""Copyright 2023 Autodata, Inc. dba ChromeData. All rights reserved", | |
| "result""=>"{ | |
| "vinSubmitted""=>""5YJSA1H14EFP30592", | |
| "vinProcessed""=>""5YJSA1H14EFP30592", | |
| "validVin""=>true", | |
| "source""=>""E", | |
| "year""=>""2014", |
| { | |
| "error""=>false", | |
| "executionTimeMS"=>97, | |
| "copyright""=>""Copyright 2023 Autodata, Inc. dba ChromeData. All rights reserved", | |
| "result""=>"{ | |
| "vinSubmitted""=>""4T1C11AK1MU600973", | |
| "vinProcessed""=>""4T1C11AK1MU600973", | |
| "validVin""=>true", | |
| "source""=>""C", | |
| "year""=>""2021", |
| require 'open-uri' | |
| module FlightAPI | |
| def self.flights_populate(city) | |
| date = (Date.today + 30).strftime("%Y/%m/%d") | |
| json = JSON.parse(open("https://api.flightstats.com/flex/connections/rest/v1/json/direct/to/#{city.iata_code}/arriving/#{date}?appId=app_id&appKey=api_key").read) | |
| airports = json["appendix"]["airports"] | |
| carriers = json["appendix"]["airlines"] | |
| flights = json["flights"] | |
| flights.each do |f| |
| def login_form_links | |
| links = [sign_in, devise_registration, password_recovery, confirmation_instructions, unlock_email] | |
| if devise_mapping.omniauthable? | |
| resource_class.omniauth_providers.each do |provider| | |
| links << link_to(t('.sign_in_with_provider', provider: OmniAuth::Utils.camelize(provider)), omniauth_authorize_path(resource_name, provider)) | |
| end | |
| end | |
| links.join(' ') | |
| end |
Base references sites (with examples):