end
def post_status(%{assigns: %{user: user}} = conn, %{"status" => status} = params) do
- l = status |> String.trim |> String.length
-
params = params
|> Map.put("in_reply_to_status_id", params["in_reply_to_id"])
- if l > 0 && l < 5000 do
- {:ok, activity} = TwitterAPI.create_status(user, params)
- render conn, StatusView, "status.json", %{activity: activity, for: user, as: :activity}
- end
+ {:ok, activity} = CommonAPI.post(user, params)
+ render conn, StatusView, "status.json", %{activity: activity, for: user, as: :activity}
end
def delete_status(%{assigns: %{user: user}} = conn, %{"id" => id}) do
end
end
+ def search(%{assigns: %{user: user}} = conn, %{"q" => query}) do
+ q = from u in User,
+ where: fragment("(to_tsvector('english', ?) || to_tsvector('english', ?)) @@ plainto_tsquery('english', ?)", u.nickname, u.name, ^query),
+ limit: 20
+ accounts = Repo.all(q)
+
+ q = from a in Activity,
+ where: fragment("?->>'type' = 'Create'", a.data),
+ where: fragment("to_tsvector('english', ?->'object'->>'content') @@ plainto_tsquery('english', ?)", a.data, ^query),
+ limit: 20
+ statuses = Repo.all(q)
+
+ res = %{
+ "accounts" => AccountView.render("accounts.json", users: accounts, for: user, as: :user),
+ "statuses" => StatusView.render("index.json", activities: statuses, for: user, as: :activity),
+ "hashtags" => []
+ }
+
+ json(conn, res)
+ end
+
def relationship_noop(%{assigns: %{user: user}} = conn, %{"id" => id}) do
Logger.debug("Unimplemented, returning unmodified relationship")
with %User{} = target <- Repo.get(User, id) do