> On Jan 25, 2018, at 8:44 AM, Sam Ruby <ru...@intertwingly.net> wrote:
> 
> On Thu, Jan 25, 2018 at 1:13 AM, Craig Russell <apache....@gmail.com> wrote:
>> 
>>> On Jan 24, 2018, at 6:38 PM, Sam Ruby <ru...@intertwingly.net> wrote:
>>> 
>>>> 2. I cannot get the redirection to work. If the user enters 
>>>> whimsy.apache.org/project/icla?token=1 and file /srv/icla/1.json is in 
>>>> phase discuss, I'd like to "forward" that request to
>>>> whimsy.apache.org/project/icla/discuss?token=1 and similarly, if the user 
>>>> enters whimsy.apache.org/project/icla?token=2 and file /srv/icla/2.json is 
>>>> in phase discuss, I'd like to "forward" that request to
>>>> whimsy.apache.org/project/icla/vote?token=2
>>> 
>>> I see redirect calls within get '/', but '1.json' above won't match
>>> that.  You would need to code a get clause that matches that pattern.
>> 
>> get '/' do should match whimsy.apache.org/project/icla 
>> <http://whimsy.apache.org/project/icla> Right?
> 
> Right.  My apologies, I read too fast.
> 
>> This get is supposed to match whimsy.local/project/icla?token=1 and 
>> whimsy.local/project/icla?token=2
>> 
>> get '/' do
>>  @token = params['token']
>>  @progress = loadProgress(@token) if @token
>>  @phase = @progress[:phase] if @progress
>>  if @phase == 'discuss'
>>    redirect to("/discuss?token=" + @token)
>>  elsif @phase == 'vote'
>>    redirect to("/vote?token=" + @token)
>>  else
>>    redirect to("/invite")
>>  end
>> end
>> 
>> And then it is supposed to redirect to 
>> whimsy.local/project/icla/discuss?token=1
>> But instead it redirects to http://whimsy.local/project/icla/invite
>> 
>> And  whimsy.local/project/icla?token=2 is supposed to redirect to 
>> whimsy.local/project/icla/vote?token=2
>> But it also redirects to http://whimsy.local/project/icla/invite
>>> 
>>> As for "?token=2" with no path, get '/' does match that, and appears to 
>>> work:
>>> 
>>> $ curl --head --user rubys https://whimsy.apache.org/project/icla?token=2
>>> Enter host password for user 'rubys':
>>> HTTP/1.1 303 See Other
>>> Date: Thu, 25 Jan 2018 02:24:35 GMT
>>> Server: Apache/2.4.18 (Ubuntu)
>>> X-XSS-Protection: 1; mode=block
>>> X-Content-Type-Options: nosniff
>>> X-Frame-Options: SAMEORIGIN
>>> X-Powered-By: Phusion Passenger 5.1.12
>>> Location: https://whimsy.apache.org/project/icla/invite
>>> Status: 303 See Other
>>> Content-Type: text/html;charset=utf-8
>> 
>> This was supposed to redirect to Location: 
>> https://whimsy.apache.org/project/icla/vote?token=2
> 
> Looks to me like the redirect worked, but the if check did not do what
> you expected.  @phase is neither 'discuss' nor 'vote'.  Just a guess,
> but perhaps what you want is @progress['phase'] as this data was read
> from JSON so the hash indexes are likely to be strings.

This was totally unexpected. I thought Ruby was supposed to be user friendly. :)

@progress['phase'] is different from @progress[:phase]

I just learnt about :phase the symbol recently, and now I have to learn more? :(

Anyway, prob solved.

THANKS!

Craig

P.S. Who knew this was so complicated? ;-)
> 
> If this is not the problem, consider adding a line like the following
> and then trying the curl command I mentioned above to see what is
> going on:
> 
> response.headers['debug-progress'] = @progress.inspect
> 
> - Sam Ruby
> 
> 
>>> What problem are you seeing?
>> 
>> 
>> Craig L Russell
>> Secretary, Apache Software Foundation
>> c...@apache.org http://db.apache.org/jdo

Craig L Russell
Secretary, Apache Software Foundation
c...@apache.org http://db.apache.org/jdo

Reply via email to