<div dir="ltr"><div>Great stuff Sawyer, thank you! <br>I had a look at Dancer2::Session::Memcached, and just realized that I only really need to store a session token (from a 3rd party service that the bot interacts with). So I probably only have to use Dancer2::Session::Cookie. Let's see how to integrate that elegantly into the design...<br>


<br></div><div>If I even need to store a whole object in the future, I'll know where to look.<br></div></div><div class="gmail_extra"><br clear="all"><div><div dir="ltr">--- Pierre Masci<br>I check email a couple times daily; to reach me sooner, you can send me a text message via this page: <a href="https://awayfind.com/mascip" target="_blank">https://awayfind.com/mascip</a><br>

</div></div>
<br><br><div class="gmail_quote">On 6 December 2013 11:53, sawyer x <span dir="ltr"><<a href="mailto:xsawyerx@gmail.com" target="_blank">xsawyerx@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div dir="ltr"><div><div>Every request from the web server generates a call to the application code reference that is built by "dance". Variables do not persist between requests, nor should they.<br><br></div>You could solve it by keeping the variable in a cache. You could use Memcached, KiokuDB, or the likes. Another way would be to simply login every time you make a request. This is what's done in scopes in KiokuDB.<br>



<br></div>Another way to solve it, uglier IMHO, is using singletons. But that's just having global scope for stuff, which you should generally avoid.<br><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">

<div><div class="h5">

On Thu, Dec 5, 2013 at 6:24 PM, Pierre M <span dir="ltr"><<a href="mailto:piemas25@gmail.com" target="_blank">piemas25@gmail.com</a>></span> wrote:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div class="h5">

<div dir="ltr"><div><div><div>Hi, I'm making a bot. I'm trying to integrate it into a Dancer2 app, in order to make a REST API for it, and later be able to interact with it from the browser. <br><br>It logs in to an external webservice, like this:<br>






</div>    $bot->login($username, $password);<br>This stores some credentilals in the bot, which uses them for other requests.<br>And then it does some other stuff:<br></div>    $->do_stuff;<br></div><div>The bot exists and can make these very basic operations from a script.<br>






<br></div><div>To create the REST API with Dancer2, I made something in those lines:<br></div><div>    my $bot = MyBot->new;<br></div><div>    post '/login.json' => sub {<br>        my ($username, $password) = (params->{username}, params->{password});<br>






<br>        $bot->login($username, $password);    # Store credentials in the bot<br>    };<br></div><div>This works perfectly. <br><br>And then<br></div><div>    post '/do_stuff.json' => sub {<br></div><div>






        $bot->do_stuff;<br>    }<br></div><div>This doesn't work: when I call '/login.json', followed by '/do_stuff.json',  the second request fails because the credentials are not present:  it seems to not be interacting with the same $bot object than the login request.<br>






<br>It works if add<br></div><div>    $bot->login( ... )<br></div><div>at the beginning of the '/do_stuff.json' subroutine, but I don't want to login at each new request.<br><br></div><div>What is a clean solution for this use case?<br>





<br></div><div>* 30 minutes later *<br>I have found <a href="https://metacpan.org/pod/Dancer2::Plugin::Adapter" target="_blank">Dancer2::Plugin::Adapter</a> and the "singleton" scope, which seems to be what I need. But it won't install. I will send a RT ticket. <br>





</div><div>Any idea for an alternative solution?<br></div><div><br></div></div>
<br></div></div>_______________________________________________<br>
dancer-users mailing list<br>
<a href="mailto:dancer-users@dancer.pm" target="_blank">dancer-users@dancer.pm</a><br>
<a href="http://lists.preshweb.co.uk/mailman/listinfo/dancer-users" target="_blank">http://lists.preshweb.co.uk/mailman/listinfo/dancer-users</a><br>
<br></blockquote></div><br></div>
<br>_______________________________________________<br>
dancer-users mailing list<br>
<a href="mailto:dancer-users@dancer.pm">dancer-users@dancer.pm</a><br>
<a href="http://lists.preshweb.co.uk/mailman/listinfo/dancer-users" target="_blank">http://lists.preshweb.co.uk/mailman/listinfo/dancer-users</a><br>
<br></blockquote></div><br></div>