NineSec Team Shell
Server IP : 92.205.26.207  /  Your IP : 216.73.216.16
Web Server : Apache
System : Linux 207.26.205.92.host.secureserver.net 4.18.0-553.60.1.el8_10.x86_64 #1 SMP Thu Jul 10 04:01:16 EDT 2025 x86_64
User : zikryat ( 1002)
PHP Version : 8.3.23
Disable Function : exec,passthru,shell_exec,system
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON
Directory (0755) :  /home/zikryat/public_html/src/core/common/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/zikryat/public_html/src/core/common/base.service.ts
/**
 * Copyright 2023, the hatemragab project author.
 * All rights reserved. Use of this source code is governed by a
 * MIT license that can be found in the LICENSE file.
 */

import {
    FilterQuery,
    ProjectionType,
    QueryOptions,
    UpdateQuery,
} from "mongoose";

export abstract class BaseService<IM> {
    abstract create(obj: Partial<IM>, session?): Promise<any>
    abstract createMany(obj: Array<Partial<IM>>, session?): Promise<any>
    abstract findById(id: string, select?: string | null): Promise<IM | null>

    abstract findOne(filter: FilterQuery<IM>, select?: string | null): Promise<IM | null>
    abstract findOneAndUpdate(filter: FilterQuery<IM>, update: UpdateQuery<IM>, session?, options?: QueryOptions<IM> | null): Promise<IM | null>

    abstract findByIdOrThrow(id: string, select?: string | null): Promise<IM>

    abstract findByIdAndUpdate(id: string, update: UpdateQuery<IM> | null, session?): Promise<any>

    abstract updateMany(filter: FilterQuery<IM>, update: UpdateQuery<IM>, session?, options?: QueryOptions<IM> | null): Promise<any>

    abstract findAll(filter?: FilterQuery<IM>, select?: string | null, options?: QueryOptions<IM> | null): Promise<any>

    abstract findByIdAndDelete(id: string, session?): Promise<any>
    abstract deleteMany(filter: FilterQuery<IM>, session?): Promise<any>
    abstract findCount(filter: FilterQuery<IM>, session?): Promise<any>
}

NineSec Team - 2022