auth.module.ts
import { TypeOrmModule } from '@nestjs/typeorm';
const repositories = [ApiKeysRepository];
const services = [AuthService];
@Module({
imports: [TypeOrmModule.forFeature([...repositories])],
providers: [...services],
exports: [...services],
})
export class AuthModule {}
auth.service.ts
import { InjectRepository } from '@nestjs/typeorm';
@Injectable()
export class AuthService {
constructor(
@InjectRepository(ApiKeysRepository)
private apiKeysRepository: ApiKeysRepository
) {}
async findByApiKey(apiKey: string): Promise<ApiKeys> {
const apiKeys: ApiKeys = await this.apiKeysRepository.findByApiKey(
apiKey,
);
return apiKeys;
}
}
apiKeys.repository.ts
import { EntityRepository, Repository } from 'typeorm';
import { ApiKeys } from '../entities/ApiKeys.entity';
@EntityRepository(ApiKeys)
export class ApiKeysRepository extends Repository<ApiKeys> {
async findByApiKey(apiKey: string): Promise<ApiKeys> {
const query = await this.findOne({
where: {
Key: apiKey,
},
});
return query;
}
}
package.json
{
"@nestjs/axios": "^2.0.0",
"@nestjs/common": "^9.0.0",
"@nestjs/config": "^2.3.1",
"@nestjs/core": "^9.0.0",
"@nestjs/platform-express": "^9.0.0",
"@nestjs/typeorm": "^9.0.1",
"typeorm": "^0.3.13",
"mssql": "^9.1.1",
}