On Sunday, 23 July 2017 at 15:43:31 UTC, Seb wrote:
On Sunday, 23 July 2017 at 15:23:25 UTC, holo wrote:
Hello

Im trying to create REST api for my simple web page. My code is looking like below:

module service.frontpage;

import vibe.d;

@path("/api")
interface IFrontPageAPI
{
  Json getHome();
}

class FrontPageAPI : IFrontPageAPI
{


  this(auto tmp)
  {
    auto collect = tmp;
  }

  Json getHome()
  {
    logInfo("Getting HomePage from DB");
    Bson query = Bson(["_id" : Bson("homepage")]);
    auto result = collect.find(query);


    logInfo("Iterating results...");
    foreach (i, doc; result.byPair)
    logInfo("Item %d: %s", i, doc.toJson().toString());

    return result.toJson();
  }
}

But when i try to compile it im getting:

source/service/frontpage.d(15,3): Error: undefined identifier 'tmp', did you mean alias 'cmp'?

Did i miss something?

You need to
- use Class variables
- use types instead auto (here Mongo collection)
- return a proper Json

Have a look at: https://is.gd/7AMsKs

And play with it - no output means no complication error.

Thank you it solves my problem, but now i'm getting:

source/service/frontpage.d(28,30): Error: template std.array.byPair cannot deduce function from argument types !()(MongoCursor!(Bson, Bson, typeof(null))), candidates are: /usr/include/dlang/dmd/std/array.d(419,6): std.array.byPair(Key, Value)(Value[Key] aa) source/service/frontpage.d(21,10): Error: function frontpage.FrontPageAPI.getHome no return exp; or assert(0); at end of function

What is strange it is just copy/paste from example: https://github.com/rejectedsoftware/vibe.d/blob/master/examples/mongodb/source/app.d


Reply via email to