Browse Source

use abstract feature of typescript

SMAZNet 4 years ago
parent
commit
12b6119b8e
1 changed files with 174 additions and 203 deletions
  1. 174 203
      gramjs/sessions/Abstract.ts

+ 174 - 203
gramjs/sessions/Abstract.ts

@@ -2,207 +2,178 @@ import type {AuthKey} from "../crypto/AuthKey";
 import type {EntityLike} from "../define";
 import {Api} from "../tl";
 
-export class Session {
-    constructor() {
-
-    }
-
-    /**
-     * Creates a clone of this session file
-     * @param toInstance {Session|null}
-     * @returns {Session}
-     */
-
-    /* CONTEST
-    clone(toInstance = null) {
-        return toInstance || new this.constructor()
-    }*/
-
-    /**
-     * Sets the information of the data center address and port that
-     * the library should connect to, as well as the data center ID,
-     * which is currently unused.
-     * @param dcId {number}
-     * @param serverAddress {string}
-     * @param port {number}
-     */
-    setDC(dcId: number, serverAddress: string, port: number) {
-        throw new Error('Not implemented')
-    }
-
-    /**
-     * Returns the currently-used data center ID.
-     */
-    get dcId(): number {
-        throw new Error('Not Implemented')
-    }
-
-    /**
-     * Returns the server address where the library should connect to.
-     */
-    get serverAddress(): string | undefined {
-        throw new Error('Not Implemented')
-    }
-
-    /**
-     * Returns the port to which the library should connect to.
-     */
-    get port(): number | undefined {
-        throw new Error('Not Implemented')
-    }
-
-    /**
-     * Returns an ``AuthKey`` instance associated with the saved
-     * data center, or `None` if a new one should be generated.
-     */
-    get authKey(): AuthKey | undefined {
-        throw new Error('Not Implemented')
-    }
-
-    /**
-     * Sets the ``AuthKey`` to be used for the saved data center.
-     * @param value
-     */
-    set authKey(value: AuthKey | undefined) {
-        throw new Error('Not Implemented')
-    }
-
-    /**
-     * Called before using the session
-     */
-    async load() {
-        throw new Error('Not Implemented')
-
-    }
-
-    /**
-     *  sets auth key for a dc
-     */
-    setAuthKey(authKey?: AuthKey, dcId?: number) {
-        throw new Error('Not Implemented')
-    }
-
-    /**
-     *  gets auth key for a dc
-     */
-
-    getAuthKey(dcId?: number): AuthKey | undefined {
-        throw new Error('Not Implemented')
-    }
-
-    /**
-     *
-     * @param key
-     */
-    getInputEntity(key: EntityLike) : Api.TypeInputPeer{
-        throw new Error('Not Implemented')
-    }
-    /**
-     * Returns an ID of the takeout process initialized for this session,
-     * or `None` if there's no were any unfinished takeout requests.
-     */
-    /*CONTEST
-    get takeoutId() {
-        throw new Error('Not Implemented')
-    }
-    */
-    /**
-     * Sets the ID of the unfinished takeout process for this session.
-     * @param value
-     */
-    /*CONTEST
-    set takeoutId(value) {
-        throw new Error('Not Implemented')
-    }
-    */
-    /**
-     * Returns the ``UpdateState`` associated with the given `entity_id`.
-     * If the `entity_id` is 0, it should return the ``UpdateState`` for
-     * no specific channel (the "general" state). If no state is known
-     * it should ``return None``.
-     * @param entityId
-     */
-    /*CONTEST
-    getUpdateState(entityId) {
-        throw new Error('Not Implemented')
-    }
-
-     */
-
-    /**
-     * Sets the given ``UpdateState`` for the specified `entity_id`, which
-     * should be 0 if the ``UpdateState`` is the "general" state (and not
-     * for any specific channel).
-     * @param entityId
-     * @param state
-     */
-    /*CONTEST
-    setUpdateState(entityId, state) {
-        throw new Error('Not Implemented')
-    }
-
-     */
-
-    /**
-     * Called on client disconnection. Should be used to
-     * free any used resources. Can be left empty if none.
-     */
-
-    /*CONTEST
-    close() {
-
-    }
-
-     */
-
-    /**
-     * called whenever important properties change. It should
-     * make persist the relevant session information to disk.
-     */
-    save() {
-        throw new Error('Not Implemented')
-    }
-
-    /**
-     * Called upon client.log_out(). Should delete the stored
-     * information from disk since it's not valid anymore.
-     */
-
-    delete() {
-        throw new Error('Not Implemented')
-    }
-
-    /**
-     * Lists available sessions. Not used by the library itself.
-     */
-
-    /*CONTEST
-    listSessions() {
-        throw new Error('Not Implemented')
-    }
-
-     */
-
-    /**
-     * Processes the input ``TLObject`` or ``list`` and saves
-     * whatever information is relevant (e.g., ID or access hash).
-     * @param tlo
-     */
-    processEntities(tlo: any) {
-        throw new Error('Not Implemented')
-    }
-
-
-    /**
-     * Turns the given key into an ``InputPeer`` (e.g. ``InputPeerUser``).
-     * The library uses this method whenever an ``InputPeer`` is needed
-     * to suit several purposes (e.g. user only provided its ID or wishes
-     * to use a cached username to avoid extra RPC).
-     */
-    /*CONTEST
-    getInputEntity(key) {
-        throw new Error('Not Implemented')
-    }
-
-     */
+export abstract class Session {
+
+  /**
+   * Creates a clone of this session file
+   * @param toInstance {Session|null}
+   * @returns {Session}
+   */
+
+  /* CONTEST
+  clone(toInstance = null) {
+      return toInstance || new this.constructor()
+  }*/
+
+  /**
+   * Sets the information of the data center address and port that
+   * the library should connect to, as well as the data center ID,
+   * which is currently unused.
+   * @param dcId {number}
+   * @param serverAddress {string}
+   * @param port {number}
+   */
+  abstract setDC(dcId: number, serverAddress: string, port: number): void;
+
+  /**
+   * Returns the currently-used data center ID.
+   */
+  abstract get dcId(): number ;
+
+  /**
+   * Returns the server address where the library should connect to.
+   */
+  abstract get serverAddress(): string | undefined;
+
+  /**
+   * Returns the port to which the library should connect to.
+   */
+  abstract get port(): number | undefined ;
+
+  /**
+   * Returns an ``AuthKey`` instance associated with the saved
+   * data center, or `None` if a new one should be generated.
+   */
+  abstract get authKey(): AuthKey | undefined ;
+
+  /**
+   * Sets the ``AuthKey`` to be used for the saved data center.
+   * @param value
+   */
+  abstract set authKey(value: AuthKey | undefined) ;
+
+  /**
+   * Called before using the session
+   */
+  abstract load(): Promise<void>
+
+  /**
+   *  sets auth key for a dc
+   */
+  abstract setAuthKey(authKey?: AuthKey, dcId?: number): void;
+
+  /**
+   *  gets auth key for a dc
+   */
+
+  abstract getAuthKey(dcId?: number): AuthKey | undefined ;
+
+  /**
+   *
+   * @param key
+   */
+  abstract getInputEntity(key: EntityLike): Api.TypeInputPeer;
+
+  /**
+   * Returns an ID of the takeout process initialized for this session,
+   * or `None` if there's no were any unfinished takeout requests.
+   */
+  /*CONTEST
+  get takeoutId() {
+      throw new Error('Not Implemented')
+  }
+  */
+  /**
+   * Sets the ID of the unfinished takeout process for this session.
+   * @param value
+   */
+  /*CONTEST
+  set takeoutId(value) {
+      throw new Error('Not Implemented')
+  }
+  */
+  /**
+   * Returns the ``UpdateState`` associated with the given `entity_id`.
+   * If the `entity_id` is 0, it should return the ``UpdateState`` for
+   * no specific channel (the "general" state). If no state is known
+   * it should ``return None``.
+   * @param entityId
+   */
+  /*CONTEST
+  getUpdateState(entityId) {
+      throw new Error('Not Implemented')
+  }
+
+   */
+
+  /**
+   * Sets the given ``UpdateState`` for the specified `entity_id`, which
+   * should be 0 if the ``UpdateState`` is the "general" state (and not
+   * for any specific channel).
+   * @param entityId
+   * @param state
+   */
+  /*CONTEST
+  setUpdateState(entityId, state) {
+      throw new Error('Not Implemented')
+  }
+
+   */
+
+  /**
+   * Called on client disconnection. Should be used to
+   * free any used resources. Can be left empty if none.
+   */
+
+  /*CONTEST
+  close() {
+
+  }
+
+   */
+
+  /**
+   * called whenever important properties change. It should
+   * make persist the relevant session information to disk.
+   */
+  abstract save(): void;
+
+  /**
+   * Called upon client.log_out(). Should delete the stored
+   * information from disk since it's not valid anymore.
+   */
+
+  abstract delete(): void;
+
+  /**
+   * Lists available sessions. Not used by the library itself.
+   */
+
+  /*CONTEST
+  listSessions() {
+      throw new Error('Not Implemented')
+  }
+
+   */
+
+  /**
+   * Processes the input ``TLObject`` or ``list`` and saves
+   * whatever information is relevant (e.g., ID or access hash).
+   * @param tlo
+   */
+  abstract processEntities(tlo: any): void;
+
+
+  /**
+   * Turns the given key into an ``InputPeer`` (e.g. ``InputPeerUser``).
+   * The library uses this method whenever an ``InputPeer`` is needed
+   * to suit several purposes (e.g. user only provided its ID or wishes
+   * to use a cached username to avoid extra RPC).
+   */
+  /*CONTEST
+  getInputEntity(key) {
+      throw new Error('Not Implemented')
+  }
+
+   */
 }