Browse Source

Add models and start populating things

Douglas Thrift 6 years ago
parent
commit
d1ee589431
2 changed files with 34 additions and 11 deletions
  1. 33 10
      app.rb
  2. 1 1
      views/index.erb

+ 33 - 10
app.rb

@@ -1,7 +1,9 @@
 require 'flickr/login'
 require 'flickraw'
+require 'pry'
 require 'sinatra'
 require 'sinatra/config_file'
+require 'sinatra/json'
 require 'sinatra/reloader'
 require 'sinatra/sequel'
 
@@ -33,6 +35,22 @@ migration 'create users, licenses, and photos tables' do
   end
 end
 
+class User < Sequel::Model
+  one_to_many :photo, key: :owner
+  unrestrict_primary_key
+end
+
+class License < Sequel::Model
+  one_to_many :photo, key: :license
+  unrestrict_primary_key
+end
+
+class Photo < Sequel::Model
+  many_to_one :user, key: :owner
+  many_to_one :license, key: :license
+  unrestrict_primary_key
+end
+
 helpers Flickr::Login::Helpers
 helpers do
   def flickr
@@ -46,9 +64,20 @@ end
 
 before do
   redirect to('/login?perms=write') unless flickr_user
+  @user = User.find_or_create(nsid: flickr_user[:user_nsid]) do |user|
+    user.username = flickr_user[:username]
+    user.fullname = flickr_user[:fullname]
+  end
 end
 
 get '/' do
+  flickr.photos.licenses.getInfo.each do |flickr_license|
+    License.create do |license|
+      license.id = flickr_license.id
+      license.name = flickr_license.name
+      license.url = flickr_license.url
+    end
+  end if License.count == 0
   erb :index
 end
 
@@ -57,14 +86,8 @@ get '/logout' do
   redirect to('/')
 end
 
-=begin
-def list
-  all_photos = []
-  page = 0
-  begin
-    photos = flickr.photos.search(user_id: :me, extras: 'license', per_page: 500, page: page += 1)
-    all_photos.push(*photos.to_a)
-  end until photos.size < 500
-  all_photos
+get %r{/photos/([1-8])} do |page|
+  page, per_page = page.to_i, 500
+  photos = flickr.photos.search(user_id: :me, extras: 'license', per_page: per_page, page: page)
+  json page: page, per_page: per_page, photos: photos
 end
-=end

+ 1 - 1
views/index.erb

@@ -1 +1 @@
-Hello <%= flickr_user[:fullname] %>!
+Hello <%= @user.fullname %>!