Skip to content

Instantly share code, notes, and snippets.

@MariusBongarts
Last active August 8, 2021 15:28
Show Gist options
  • Save MariusBongarts/02b2c9043547f1d64e05b171799443d4 to your computer and use it in GitHub Desktop.
Save MariusBongarts/02b2c9043547f1d64e05b171799443d4 to your computer and use it in GitHub Desktop.
DRY - Updated ProductService
class ProductService {
private db: DB<Product>;
private entity = 'product';
constructor() {
this.db = new DB<Product>(this.entity);
}
async create(user: User, product: Product): Promise<Product | undefined> {
if (userIsPermitted(user)) {
console.log(`Create ${this.entity}.`);
return this.db.create({user, product});
}
return undefined;
}
async read(user: User, product: Product): Promise<Product | undefined> {
console.log(`Get ${this.entity}`);
return this.db.read({user, product});
}
async update(user: User, product: Product): Promise<Product | undefined> {
if (userIsPermitted(user)) {
console.log(`Update ${this.entity}.`);
return this.db.update({user, product});
}
return undefined;
}
async delete(user: User, product: Product): Promise<Product | undefined> {
if (userIsPermitted(user)) {
console.log(`Delete ${this.entity}.`);
return this.db.delete({user, product});
}
return undefined;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment