|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import {models} from '@tonality/library-common'
-
- export default class MockRingtoneRepository {
- constructor(private items: models.Ringtone[]) {}
-
- async get(id: string) {
- return this.items.find(item => item.id === id)
- }
-
- async browse(skip: number, take: number) {
- return this.items.slice(skip, skip + take)
- }
-
- async search(q: string) {
- return this.items.filter(item => item.name.toLowerCase().includes(q.toLowerCase()))
- }
-
- async create(data: Partial<models.Ringtone>) {
- let newItem: models.Ringtone
- this.items.push(newItem = {
- id: data.id,
- name: data.name,
- data: data.data,
- createdAt: data.createdAt,
- updatedAt: data.updatedAt,
- deletedAt: null,
- composerId: data.composerId,
- })
- return newItem
- }
-
- async update(data: Partial<models.Ringtone>) {
- let updated: models.Ringtone
- this.items = this.items.map(item => (
- item.id === data.id
- ? (updated = {
- ...item,
- ...data,
- id: item.id,
- })
- : item
- ))
- return updated
- }
-
- async softDelete(id: string, deletedAt: Date) {
- let deleted: models.Ringtone
- this.items = this.items.map(item => (
- item.id === id
- ? (deleted = {
- ...item,
- deletedAt,
- })
- : item
- ))
- return deleted
- }
-
- async undoDelete(id: string) {
- let undo: models.Ringtone
- this.items = this.items.map(item => (
- item.id === id
- ? (undo = {
- ...item,
- deletedAt: null,
- })
- : item
- ))
- return undo
- }
-
- async hardDelete(id: string) {
- let deleted: models.Ringtone
- this.items = this.items.filter(item => {
- if (item.id === id) {
- deleted = item
- return false
- }
- return true
- })
- return deleted
- }
- }
|