index.d.ts 3.68 KB
import {FilterQuery,UpdateQuery,FindAndModifyWriteOpResultObject,OptionalId,ClientSession,DeleteWriteOpResultObject,UpdateWriteOpResult} from 'mongodb'
import {AxiosPromise,AxiosRequestConfig} from 'axios'

export class Utils {
    /**
    * @description Testasdfasdfasdf
    * @param {String} str 
    * @returns {String}
    */
    static printf(str) { }
}
export const ENV = {
    DB_URL : "",
    DB_NAME : "",
    DB_PORT : "",
    DB_USERNAME : "",
    DB_PASSWORD : ""
}

export const ConnectMongo ={
    initial = async function():void{},
    getDB = function():InterfaceDBAction{} 
};


export const AppApi = {
    initial : Function(), 
    addPostMethod : async function(uri:string,processor:Processor):void{} , 
    addGetMethod : async function(uri:string,processor:Processor):void{} , 
    startApp : function():void{}
};

export class Network  {
        /**
     * 
     * @param {String} url 
     * @param {*} params 
     * @param {AxiosRequestConfig} config 
     */
    static async requestPost(url, params = {}, config = {}):JSON  {}
        /**
     * 
     * @param {String} urlWithParams 
     * @param {AxiosRequestConfig} config 
     */
    static async requestGet(urlWithParams, config = {}):JSON {}
}


/***
 * 
 * 
 * External class
 */



class ServiceData{
    body:JSON;
    headers:JSON;
}
class Processor {
    process(sv:ServiceData) :JSON {}
}

class InterfaceDBAction {

    /**
     * Select * From
     * @param {String} collectionName 
     * @param {*} queryCondition 
     * @param {Object} filter
     * @returns {Promise<Array>}
     */
    async  find(collectionName, queryCondition = {}, filter = {}) {
    
    }
    /**
     * Select * From Where Only One Data
     * @param {String} collectionName 
     * @param {*} queryCondition 
     */
    async findOne(collectionName, queryCondition = {}) {
   
    }
    /**
   * Insert One Data
   * @param {String} collectionName 
   * @param {OptionalId<Object>} data 
   * @param {ClientSession} session
   */
  async insertOne(collectionName, data = {} , session = undefined) {}
  
  /**
   * Update Data
   * @param {String} collectionName 
   * @param {FilterQuery<Object>} queryCondition 
   * @param {*} updateValue 
   * @param {ClientSession} session
   * @return {UpdateWriteOpResult}
   */
  async updateOne(collectionName, queryCondition = {}, updateValue = {}, session = undefined) {}
    
    
  /**
   * Update Many Data
   * @param {String} collectionName 
   * @param {*} queryCondition 
   * @param {*} updateValue 
   * @param {ClientSession} session
   */
  async updateMany(collectionName, queryCondition = {}, updateValue = {} ,session = undefined) {}
  
  /**
   * Delete From
   * @param {String} collectionName 
   * @param {*} queryCondition 
   * @param {ClientSession} session
   * 
   * @return {DeleteWriteOpResultObject}
   */
  async deleteMany(collectionName, queryCondition,session = undefined) {}
  
  
   /**
   * @description Find a document and update it in one atomic operation. Requires a write lock for the duration of the operation.
   * http://mongodb.github.io/node-mongodb-native/3.3/api/Collection.html#findOneAndUpdate
   * @param {String} collectionName 
   * @param {FilterQuery<Object>} queryCondition 
   * @param {UpdateQuery<Object>} updateValue 
   *  
   * @returns {FindAndModifyWriteOpResultObject<Object>}
   */
  async findOneAndUpdate(collectionName, queryCondition = {}, updateValue = {}) {}
  
  
  
  /**
   * @description https://docs.mongodb.com/manual/reference/operator/aggregation-pipeline
   * @param {String} collectionName 
   * @param {Object[]} pipeline 
   */
  async aggregate(collectionName, pipeline = {}) {}
  
  
  /**
   * @returns {ClientSession}
   */
  async  CreateSession (){}
  
  
  }