An application that reminds you to water your plants
1# frozen_string_literal: true
2
3require 'sinatra'
4
5require_relative 'lib/database'
6require_relative 'lib/data_access'
7require_relative 'lib/services'
8
9database = Database.new
10data_access = DataAccess.new database
11services = Services.new data_access
12
13def simple_get(path, view)= get(path) { erb view.to_sym }
14
15# Simple routes
16simple_get '/', :index
17simple_get '/plants', :plants
18get('/db-health-check') { database.healthcheck }
19
20post '/new-plant' do
21 redirect '/plants' if services.plant.new_plant user_id: params['user_id'],
22 name: params['name'],
23 plant_type: params['plant_type']
24end
25
26post '/sign-up' do
27 return services.user.sign_up! params['email'] if params.key?('email')
28
29 status 400
30 'No email provided!'
31end
32
33post '/validate-code' do
34 redirect '/plants' if services.user.validate_code? ip: request.env['REMOTE_ADDR'],
35 email: params['email'],
36 code: params['validation-code']
37end
38
39post '/send-email' do
40 # TODO: Do something
41end