Skip to content

Instantly share code, notes, and snippets.

@greetclock
Created July 16, 2022 15:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save greetclock/b6a4ba0c6535ae38851f9f5d3411e82f to your computer and use it in GitHub Desktop.
Save greetclock/b6a4ba0c6535ae38851f9f5d3411e82f to your computer and use it in GitHub Desktop.
// https://github.com/greetclock/parts/blob/3eec90/libs/todos-data/src/lib/todos-adapter.service.ts
import { Observable } from 'rxjs'
import { Todo } from './types'
export type CreateTodoDto = Omit<Todo, 'uuid' | 'status'>
export class TodoNotFoundError extends Error {}
export abstract class TodosAdapterService {
abstract getTodos(): Observable<Todo[]>
abstract getTodoByUuid(uuid: string): Observable<Todo | null>
abstract createTodo(todo: CreateTodoDto): Observable<Todo>
abstract deleteTodo(uuid: string): Observable<void>
/**
* @throws TodoNotFoundError
*/
abstract updateTodo(todo: Todo): Observable<Todo>
/**
* @throws TodoNotFoundError
*/
abstract updateTodoStatus(
uuid: string,
status: Todo['status']
): Observable<Todo>
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment