File

src/admin-profile/admin-profile.service.ts

Index

Properties
Methods

Constructor

constructor(adminModel: Model<AdminDocument>)
Parameters :
Name Type Optional
adminModel Model<AdminDocument> No

Methods

Async findByEmail
findByEmail(email: string)
Parameters :
Name Type Optional
email string No
Returns : unknown
Async getCustodial
getCustodial(email: string, address?: string)
Parameters :
Name Type Optional
email string No
address string Yes
Async saveAdmin
saveAdmin(email: string, wallets: WalletDocument[])
Parameters :
Name Type Optional
email string No
wallets WalletDocument[] No
Returns : unknown

Properties

Private Readonly internalCustodialService
Type : InternalCustodialService
Decorators :
@Inject(InternalCustodialService)
import { Inject, Injectable } from "@nestjs/common";
import { InjectModel } from "@nestjs/mongoose";
import { Model } from "mongoose";
import { Admin, AdminDocument } from "./schemas/admin.schema";
import { WalletDocument } from "src/wallet/schemas/wallet.schema";
import { InternalCustodialService } from "src/shared/custodial/internalCustodial.service";
import { CustodialDocument } from "src/shared/custodial/schemas/custodial.schema";

@Injectable()
export class AdminProfileService {
  @Inject(InternalCustodialService)
  private readonly internalCustodialService: InternalCustodialService;

  constructor(
    @InjectModel(Admin.name)
    private readonly adminModel: Model<AdminDocument>,
  ) {}

  async saveAdmin(email: string, wallets: WalletDocument[]) {
    const admin = new this.adminModel({
      email,
      wallets,
    });
    return admin.save();
  }

  async findByEmail(email: string) {
    return this.adminModel.findOne({ email });
  }

  async getCustodial(
    email: string,
    address?: string,
  ): Promise<CustodialDocument> {
    let walletAddress: string;

    if (address) {
      walletAddress = address;
    } else {
      const admin = await this.findByEmail(email);
      walletAddress = admin.wallets[0].address;
    }

    return await this.internalCustodialService.findOne(walletAddress);
  }
}

results matching ""

    No results matching ""