Options
All
  • Public
  • Public/Protected
  • All
Menu

Class AbstractCategory<Collection, Meta, Data, UnionProperties>

Type parameters

  • Collection = {}

  • Meta = {}

  • Data = {}

  • UnionProperties = CategoryProperties & Data & { meta: Meta }

Hierarchy

  • ClientModel<{ collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }>

Index

Constructors

constructor

  • new AbstractCategory(collection: { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["collection"], data?: Partial<{ collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["properties"]>): AbstractCategory
  • Parameters

    • collection: { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["collection"]
    • Default value data: Partial<{ collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["properties"]> = {}

    Returns AbstractCategory

Properties

Optional Readonly annotated

busy

busy: boolean = false

collection

collection: { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["collection"]

data

data: { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["properties"]

delete

delete: (params?: { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["delete"]["parameters"]) => CancellablePromise<{ collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["delete"]["response"]> = flow(function* (this: ClientModel<any>, params) {if (!this.annotated.delete) {throw new Error("There is no delete method allowed");}this.busy = true;try {const {delete: { path, method },namespace} = this.annotated;const response: T["delete"]["response"] = yield this.annotated.request<T["delete"]["parameters"],T["delete"]["parameters"],T["delete"]["response"]>({location: {path,method: method || ERouteHttpVerb.DELETE,namespace},params: {...{ [this.annotated.keyId]: this.key },...(params || {})}});this.collection.entries.delete(this.key);this.afterDelete();return response;} catch (e) {console.log(e);throw e;} finally {this.busy = false;}})

Type declaration

    • (params?: { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["delete"]["parameters"]): CancellablePromise<{ collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["delete"]["response"]>
    • Parameters

      • Optional params: { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["delete"]["parameters"]

      Returns CancellablePromise<{ collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["delete"]["response"]>

patch

patch: (params?: { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["patch"]["parameters"]) => CancellablePromise<void> = flow(function* (this: ClientModel<any>,params) {if (!this.annotated.patch) {throw new Error("There is no patch method allowed");}this.busy = true;try {const {patch: { path, method },namespace} = this.annotated;const response: T["patch"]["response"] = yield this.annotated.request<T["patch"]["request"],T["patch"]["parameters"],T["patch"]["response"]>({location: {path,method: method || ERouteHttpVerb.PATCH,namespace},request: this.transformDataForPatch(),params: {...{ [this.annotated.keyId]: this.key },...(params || {})}});this.fromResponse(response);this.afterPatch();} catch (e) {console.log(e);throw e;} finally {this.busy = false;}})

Type declaration

    • (params?: { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["patch"]["parameters"]): CancellablePromise<void>
    • Parameters

      • Optional params: { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["patch"]["parameters"]

      Returns CancellablePromise<void>

persist

persist: (params?: { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["create"]["parameters"]) => CancellablePromise<void> = flow(function* (this: ClientModel<any>,params) {if (!this.annotated.create) {throw new Error("There is no persist method allowed");}this.busy = true;try {const {create: { path, method },namespace} = this.annotated;const response: T["create"]["response"] = yield this.annotated.request<T["create"]["request"],T["create"]["parameters"],T["create"]["response"]>({location: {path,method: method || ERouteHttpVerb.POST,namespace},request: this.transformDataForPersist(),params: params || {}});this.fromResponse(response);this.collection.entries.set(this.key, this);this.afterPersist();} catch (e) {console.log(e);throw e;} finally {this.busy = false;}})

Type declaration

    • (params?: { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["create"]["parameters"]): CancellablePromise<void>
    • Parameters

      • Optional params: { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["create"]["parameters"]

      Returns CancellablePromise<void>

Accessors

key

  • get key(): { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["key"]
  • Returns { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["key"]

Methods

afterDelete

  • afterDelete(): void
  • Returns void

afterPatch

  • afterPatch(): void
  • Returns void

afterPersist

  • afterPersist(): void
  • Returns void

fromResponse

  • fromResponse(response: { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["properties"]): this
  • Parameters

    • response: { collection: Collection; delete: { parameters: { force: true; id?: number }; response: UnionProperties | { deleted: true; previous: UnionProperties } }; key: number; patch: { parameters: { id?: number } }; properties: UnionProperties }["properties"]

    Returns this

transformDataForPatch

  • transformDataForPatch(): any
  • Returns any

transformDataForPersist

  • transformDataForPersist(): any

Static Optional annotate

  • Type parameters

    • T: { constructor: any }

    Parameters

    Returns (Anonymous function)

Generated using TypeDoc