forked from jmug/stoatchat
54 lines
1.1 KiB
JavaScript
54 lines
1.1 KiB
JavaScript
const Internal = require(".");
|
|
|
|
// playing around with class wrapper, not practical
|
|
class Model {
|
|
constructor(model) {
|
|
this.model = model;
|
|
}
|
|
|
|
data() {
|
|
return Internal.model_data.bind(this.model)();
|
|
}
|
|
|
|
error() {
|
|
return Internal.model_error.bind(this.model)();
|
|
}
|
|
}
|
|
|
|
class User extends Model {
|
|
constructor(db, user) {
|
|
super(user);
|
|
this.db = db;
|
|
}
|
|
}
|
|
|
|
class Database {
|
|
constructor() {
|
|
this.db = Internal.database();
|
|
}
|
|
|
|
async fetchUser(userId) {
|
|
return new User(
|
|
this,
|
|
await Internal.database_fetch_user.bind(this.db)(userId)
|
|
);
|
|
}
|
|
|
|
async fetchUserByUsername(username, discriminator) {
|
|
return new User(
|
|
this,
|
|
await Internal.database_fetch_user_by_username.bind(this.db)(
|
|
username,
|
|
discriminator
|
|
)
|
|
);
|
|
}
|
|
}
|
|
|
|
const db = new Database();
|
|
db.fetchUserByUsername("dos", "7624").then((user) => console.info(user.data()));
|
|
db.fetchUserByUsername("dos", "1111").then((user) => console.info(user.data()));
|
|
db.fetchUserByUsername("dos", "1111").then((user) =>
|
|
console.info(user.error())
|
|
);
|