import * as bcrypt from 'https://deno.land/x/bcrypt@v0.2.4/mod.ts' import { v4 } from 'https://deno.land/std@0.99.0/uuid/mod.ts' import { Database } from 'https://deno.land/x/aloedb@0.9.0/mod.ts' import { UserSchema } from './../stores/user.ts' /** * * */ class UserRepository { db: any; constructor() { this.db = new Database('./storage/database/users.json') } /** * */ async create(data: any) { data._id = v4.generate() data.password = await bcrypt.hash(data.password) const user = await this.db.insertOne(data) return user } /** * */ async update(data: any) { const user = await this.db.findOne({ '_id': data._id }) // if password has changed hash password new if (user && user.password !== data.password) { data.password = await bcrypt.hash(data.password) } return await this.db.updateOne({ '_id': data._id }, data) } } export default UserRepository