You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
39 lines
1.1 KiB
CoffeeScript
39 lines
1.1 KiB
CoffeeScript
require("pretty-error").start().skipPackage("bluebird", "coffee-script").skipNodeFiles()
|
|
|
|
Promise = require "bluebird"
|
|
#Promise.longStackTraces()
|
|
|
|
yaorm = require("./")({
|
|
driver: "pg"
|
|
hostname: "localhost"
|
|
username: "postgres"
|
|
database: "team"
|
|
})
|
|
|
|
yaorm.defineModel "User",
|
|
tableName: "users"
|
|
columns: ["id", "username", "display_name", "email_address", "hash", "external_identifier", "external_authentication", "created_at", "updated_at", "activated", "activation_key"]
|
|
relations:
|
|
"projects": yaorm.hasMany("Project", foreignKey: "owner_id")
|
|
|
|
yaorm.defineModel "Project",
|
|
tableName: "projects"
|
|
columns: ["id", "owner_id", "public", "name", "slug", "description", "created_at", "updated_at", "default_permissions"]
|
|
relations:
|
|
"owner": yaorm.belongsTo("User", foreignKey: "owner_id")
|
|
|
|
Promise.try ->
|
|
yaorm.model("Project").getAll(relations: "owner")
|
|
.map (project) -> [project.name, project.owner.display_name]
|
|
.then (projects) ->
|
|
console.log projects
|
|
.catch (err) ->
|
|
console.log err.stack
|
|
|
|
### TODO:
|
|
* Nested relations
|
|
* More complex relations (many-to-many?)
|
|
* Save (UPDATE + INSERT)
|
|
* Deep save (incl. nested relations)
|
|
###
|