(Issue #752) Add user-side /data/interests (JSON), remove site-side /misc/interestdata

Add a JSON API endpoint for retrieving user interests, and remove the old script.

No replacement is being made for the previous ?int= functionality to find the count for a single interest; this was apparently rarely used.

The new file is based on the Edges.pm file, so I've left the credits for that file as I'm not sure how much of the stuff I deleted is theirs. (Commit b879927 shows the exact amount that was deleted.)

Fixes #752.
I would never say no to an automated test ;) 

Might suggest splitting out into a model of sorts so it's more unit testing (application logic) rather than integration testing (testing the whole system by loading eg routing urls)

Bemused I did the latter for the entry controller in t/post.t and I have come to regret it




> On Jul 4, 2014, at 19:55, Sophira <notifications@github.com> wrote:
> 
> In cgi-bin/DW/Controller/Interests.pm:
> 
> > +       my ( $code, $message ) = @_;
> > +       $r->status( $code );
> > +       $format->( $r, { error => $message } );
> > +
> > +       return $r->OK;
> > +    };
> > +
> > +    # Load the account or error
> > +    return $error_out->( $r->NOT_FOUND, 'Need account name as user parameter' ) unless $opts->username;
> > +    my $u = LJ::load_user_or_identity( $opts->username )
> > +        or return $error_out->( $r->NOT_FOUND, "invalid account");
> > +
> > +    # Check for other conditions
> > +    return $error_out->( $r->HTTP_GONE, 'expunged' ) if $u->is_expunged;
> > +    return $error_out->( $r->FORBIDDEN, 'suspended' ) if $u->is_suspended;
> > +    return $error_out->( $r->NOT_FOUND, 'deleted' ) if $u->is_deleted;
> That worked just fine and the testing showed the output (as well as the HTTP error codes) to be correct.
> 
> Should I make automated tests for this?
> 
> —
> Reply to this email directly or view it on GitHub.