You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@whimsical.apache.org by Sam Ruby <ru...@apache.org> on 2015/12/15 01:19:04 UTC

[whimsy.git] [1/1] Commit 4b86206: switch to HTTP get for monthly index slices

Commit 4b86206d55fcbd028c3641573c7fff0fea4f68a9:
    switch to HTTP get for monthly index slices


Branch: refs/heads/secmail
Author: Sam Ruby <ru...@intertwingly.net>
Committer: Sam Ruby <ru...@intertwingly.net>
Pusher: rubys <ru...@apache.org>

------------------------------------------------------------
www/secmail/server.rb                                        | ++++++++ -------
www/secmail/views/http.js.rb                                 | + -
www/secmail/views/index.js.rb                                | ++ -
www/secmail/views/index.json.rb                              | ++++++ -------
------------------------------------------------------------
70 changes: 35 additions, 35 deletions.
------------------------------------------------------------


diff --git a/www/secmail/server.rb b/www/secmail/server.rb
index 403db29..26b7a6c 100644
--- a/www/secmail/server.rb
+++ b/www/secmail/server.rb
@@ -19,12 +19,13 @@
 end
 
 # support for fetching previous month's worth of messages
-post '/' do
+get %r{^/(\d{6})$} do |mbox|
+  @mbox = mbox
   _json :index
 end
 
 # retrieve a single message
-get %r{^/(\d+)/(\w+)/$} do |month, hash|
+get %r{^/(\d{6})/(\w+)/$} do |month, hash|
   @message = Mailbox.new(month).headers[hash]
   pass unless @message
   _html :message
@@ -46,7 +47,7 @@
 end
 
 # update a single message
-patch %r{^/(\d+)/(\w+)/$} do |month, hash|
+patch %r{^/(\d{6})/(\w+)/$} do |month, hash|
   success = false
 
   Mailbox.update(month) do |headers|
@@ -70,7 +71,7 @@
 end
 
 # list of parts for a single message
-get %r{^/(\d+)/(\w+)/_index_$} do |month, hash|
+get %r{^/(\d{6})/(\w+)/_index_$} do |month, hash|
   @message = Mailbox.new(month).headers[hash]
   pass unless @message
   @attachments = @message[:attachments]
@@ -78,21 +79,21 @@
 end
 
 # message body for a single message
-get %r{^/(\d+)/(\w+)/_body_$} do |month, hash|
+get %r{^/(\d{6})/(\w+)/_body_$} do |month, hash|
   @message = Mailbox.new(month).find(hash)
   pass unless @message
   _html :body
 end
 
 # header data for a single message
-get %r{^/(\d+)/(\w+)/_headers_$} do |month, hash|
+get %r{^/(\d{6})/(\w+)/_headers_$} do |month, hash|
   @headers = Mailbox.new(month).headers[hash]
   pass unless @headers
   _html :headers
 end
 
 # a specific attachment for a message
-get %r{^/(\d+)/(\w+)/(.*?)$} do |month, hash, name|
+get %r{^/(\d{6})/(\w+)/(.*?)$} do |month, hash, name|
   message = Mailbox.new(month).find(hash)
   pass unless message
 
diff --git a/www/secmail/views/http.js.rb b/www/secmail/views/http.js.rb
index d552344..d7442ff 100644
--- a/www/secmail/views/http.js.rb
+++ b/www/secmail/views/http.js.rb
@@ -119,7 +119,7 @@ def xhr.onreadystatechange()
       xhr.open('GET', target, true)
       xhr.setRequestHeader("Accept", "application/json") if type == :json
     else
-      xhr.open('GET', "../#{type}/#{target}", true)
+      xhr.open('GET', target, true)
     end
     xhr.responseType = type
     xhr.send()
diff --git a/www/secmail/views/index.js.rb b/www/secmail/views/index.js.rb
index 2d03bb0..31abb09 100644
--- a/www/secmail/views/index.js.rb
+++ b/www/secmail/views/index.js.rb
@@ -79,7 +79,8 @@ def componentDidUpdate()
 
   # fetch a month's worth of messages
   def fetch_month()
-    HTTP.post('', mbox: @nextmbox) do |response|
+    console.log @nextmbox
+    HTTP.get("/#{@nextmbox}", :json) do |response|
       # update latest mbox
       @nextmbox = response.mbox
 
diff --git a/www/secmail/views/index.json.rb b/www/secmail/views/index.json.rb
index 24d5d40..ed155c9 100644
--- a/www/secmail/views/index.json.rb
+++ b/www/secmail/views/index.json.rb
@@ -1,32 +1,30 @@
-if @mbox =~ /^\d+$/
-  # find indicated mailbox in the list of available mailboxes
-  available = Dir["#{ARCHIVE}/*.yml"].sort
-  index = available.find_index "#{ARCHIVE}/#{@mbox}.yml"
+# find indicated mailbox in the list of available mailboxes
+available = Dir["#{ARCHIVE}/*.yml"].sort
+index = available.find_index "#{ARCHIVE}/#{@mbox}.yml"
 
-  # if found, process it
-  if index
-    # fetch a list of headers for all messages in the maibox with attachments
-    headers = Mailbox.new(@mbox).headers.to_a.select do |id, message|
-      message[:attachments] and not message[:status] == :deleted
-    end
-
-    # extract relevant fields from the headers
-    headers.map! do |id, message|
-      {
-        time: message[:time],
-        href: "#{message[:source]}/#{id}/",
-        from: message[:from],
-        subject: message['Subject']
-      }
-    end
-
-    # select previous mailbox
-    mbox = available[index-1].untaint
+# if found, process it
+if index
+  # fetch a list of headers for all messages in the maibox with attachments
+  headers = Mailbox.new(@mbox).headers.to_a.select do |id, message|
+    message[:attachments] and not message[:status] == :deleted
+  end
 
-    # return mailbox name and messages
+  # extract relevant fields from the headers
+  headers.map! do |id, message|
     {
-      mbox: (File.basename(mbox, '.yml') if index > 0),
-      messages: headers.sort_by {|message| message[:time]}.reverse
+      time: message[:time],
+      href: "#{message[:source]}/#{id}/",
+      from: message[:from],
+      subject: message['Subject']
     }
   end
+
+  # select previous mailbox
+  mbox = available[index-1].untaint
+
+  # return mailbox name and messages
+  {
+    mbox: (File.basename(mbox, '.yml') if index > 0),
+    messages: headers.sort_by {|message| message[:time]}.reverse
+  }
 end