Skip to content

Commit

Permalink
removing semi colons
Browse files Browse the repository at this point in the history
  • Loading branch information
josepablofm78 committed Dec 9, 2022
1 parent 74b44b7 commit 0472490
Show file tree
Hide file tree
Showing 51 changed files with 868 additions and 870 deletions.
2 changes: 1 addition & 1 deletion scripts/getdoc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,6 @@ const bootstrap = async () => {
writeFileSync('docs/openapi.json', JSON.stringify(document), { encoding: 'utf8' })

await app.close()
};
}

bootstrap()
106 changes: 53 additions & 53 deletions src/access/access.controller.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,22 +13,22 @@ import {
StreamableFile,
UploadedFile,
UseInterceptors,
} from '@nestjs/common';
import { ApiBearerAuth, ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger';
import { Request } from '../common/helpers/request.interface';
import { Public } from '../common/decorators/auth.decorator';
import { FileInterceptor } from '@nestjs/platform-express';
import crypto from 'crypto';
import { aes_encryption_256 } from '@nevermined-io/nevermined-sdk-dtp/dist/utils';
import { ValidationParams } from '@nevermined-io/nevermined-sdk-js/dist/node/ddo/Service';
import BigNumber from '@nevermined-io/nevermined-sdk-js/dist/node/utils/BigNumber';
import { NeverminedService } from '../shared/nevermined/nvm.service';
import { Logger } from '../shared/logger/logger.service';
import { TransferDto } from './dto/transfer';
import { UploadDto } from './dto/upload';
import { UploadResult } from './dto/upload-result';
import { AgreementData } from '@nevermined-io/nevermined-sdk-js/dist/node/keeper/contracts/managers';
import { utils } from '@nevermined-io/nevermined-sdk-js';
} from '@nestjs/common'
import { ApiBearerAuth, ApiOperation, ApiResponse, ApiTags } from '@nestjs/swagger'
import { Request } from '../common/helpers/request.interface'
import { Public } from '../common/decorators/auth.decorator'
import { FileInterceptor } from '@nestjs/platform-express'
import crypto from 'crypto'
import { aes_encryption_256 } from '@nevermined-io/nevermined-sdk-dtp/dist/utils'
import { ValidationParams } from '@nevermined-io/nevermined-sdk-js/dist/node/ddo/Service'
import BigNumber from '@nevermined-io/nevermined-sdk-js/dist/node/utils/BigNumber'
import { NeverminedService } from '../shared/nevermined/nvm.service'
import { Logger } from '../shared/logger/logger.service'
import { TransferDto } from './dto/transfer'
import { UploadDto } from './dto/upload'
import { UploadResult } from './dto/upload-result'
import { AgreementData } from '@nevermined-io/nevermined-sdk-js/dist/node/keeper/contracts/managers'
import { utils } from '@nevermined-io/nevermined-sdk-js'

export enum UploadBackends {
IPFS = 'ipfs',
Expand Down Expand Up @@ -58,9 +58,9 @@ export class AccessController {
@Param('index') index: number,
): Promise<StreamableFile | string> {
if (!req.user.did) {
throw new BadRequestException('DID not specified');
throw new BadRequestException('DID not specified')
}
return await this.nvmService.downloadAsset(req.user.did, index, res, req.user.address);
return await this.nvmService.downloadAsset(req.user.did, index, res, req.user.address)
}

@Get('nft-access/:agreement_id/:index')
Expand All @@ -79,7 +79,7 @@ export class AccessController {
@Response({ passthrough: true }) res,
@Param('index') index: number,
): Promise<StreamableFile | string> {
return await this.nvmService.downloadAsset(req.user.did, index, res, req.user.address);
return await this.nvmService.downloadAsset(req.user.did, index, res, req.user.address)
}

@Post('nft-transfer')
Expand All @@ -96,32 +96,32 @@ export class AccessController {
@Body() transferData: TransferDto,
@Req() req: Request<unknown>,
): Promise<string> {
Logger.debug(`Transferring NFT with agreement ${transferData.agreementId}`);
const nevermined = this.nvmService.getNevermined();
let agreement: AgreementData;
Logger.debug(`Transferring NFT with agreement ${transferData.agreementId}`)
const nevermined = this.nvmService.getNevermined()
let agreement: AgreementData
try {
agreement = await nevermined.keeper.agreementStoreManager.getAgreement(
transferData.agreementId,
);
)
} catch (e) {
Logger.error(`Error resolving agreement ${transferData.agreementId}`);
throw new NotFoundException(`Agreement ${transferData.agreementId} not found`);
Logger.error(`Error resolving agreement ${transferData.agreementId}`)
throw new NotFoundException(`Agreement ${transferData.agreementId} not found`)
}
if (!agreement) {
Logger.error(`Agreement ${transferData.agreementId} not found`);
throw new NotFoundException(`Agreement ${transferData.agreementId} not found`);
Logger.error(`Agreement ${transferData.agreementId} not found`)
throw new NotFoundException(`Agreement ${transferData.agreementId} not found`)
}
const params: ValidationParams = {
consumer_address: transferData.nftReceiver,
did: agreement.did,
agreement_id: transferData.agreementId,
nft_amount: BigNumber.from(transferData.nftAmount || '0'),
buyer: (req.user || {}).buyer,
};
const plugin = nevermined.assets.servicePlugin['nft-sales'];
const [from] = await nevermined.accounts.list();
await plugin.process(params, from, undefined);
return 'success';
}
const plugin = nevermined.assets.servicePlugin['nft-sales']
const [from] = await nevermined.accounts.list()
await plugin.process(params, from, undefined)
return 'success'
}

@Get('download/:index')
Expand All @@ -141,9 +141,9 @@ export class AccessController {
@Param('index') index: number,
): Promise<StreamableFile | string> {
if (!req.user.did) {
throw new BadRequestException('DID not specified');
throw new BadRequestException('DID not specified')
}
return await this.nvmService.downloadAsset(req.user.did, index, res, req.user.address);
return await this.nvmService.downloadAsset(req.user.did, index, res, req.user.address)
}

@Post('upload/:backend')
Expand All @@ -162,36 +162,36 @@ export class AccessController {
@Param('backend') backend: UploadBackends,
@UploadedFile() file: Express.Multer.File,
): Promise<UploadResult> {
let data: Buffer;
let fileName: string;
let data: Buffer
let fileName: string
if (file) {
data = file.buffer;
fileName = file.originalname;
data = file.buffer
fileName = file.originalname
} else if (uploadData.message) {
data = Buffer.from(uploadData.message);
fileName = `fileUpload_${utils.generateId()}.data${uploadData.encrypt ? '.encrypted' : ''}`;
data = Buffer.from(uploadData.message)
fileName = `fileUpload_${utils.generateId()}.data${uploadData.encrypt ? '.encrypted' : ''}`
} else {
throw new BadRequestException('No file or message in request');
throw new BadRequestException('No file or message in request')
}
console.log(`Backend ${backend}`);
console.log(`Backend ${backend}`)
if (!Object.values(UploadBackends).includes(backend))
throw new BadRequestException(`Backend ${backend} not supported`);
throw new BadRequestException(`Backend ${backend} not supported`)
try {
let url: string;
let url: string
if (uploadData.encrypt) {
// generate password
Logger.debug(`Uploading with password, filename ${fileName}`);
const password = crypto.randomBytes(32).toString('base64url');
data = Buffer.from(aes_encryption_256(data, password), 'binary');
url = await this.nvmService.uploadToBackend(backend, data, fileName);
return { url, password };
Logger.debug(`Uploading with password, filename ${fileName}`)
const password = crypto.randomBytes(32).toString('base64url')
data = Buffer.from(aes_encryption_256(data, password), 'binary')
url = await this.nvmService.uploadToBackend(backend, data, fileName)
return { url, password }
}

url = await this.nvmService.uploadToBackend(backend, data, fileName);
return { url };
url = await this.nvmService.uploadToBackend(backend, data, fileName)
return { url }
} catch (error) {
Logger.error(`Error processing upload: ${error.message}`);
throw new HttpException(error.message, HttpStatus.INTERNAL_SERVER_ERROR);
Logger.error(`Error processing upload: ${error.message}`)
throw new HttpException(error.message, HttpStatus.INTERNAL_SERVER_ERROR)
}
}
}
108 changes: 54 additions & 54 deletions src/access/access.integration.spec.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
import { INestApplication, ValidationPipe } from '@nestjs/common';
import { Reflector } from '@nestjs/core';
import { Test } from '@nestjs/testing';
import { JwtAuthGuard } from '../common/guards/auth/jwt-auth.guard';
import { AccessController } from './access.controller';
import { NeverminedModule } from '../shared/nevermined/nvm.module';
import request from 'supertest';
import { PassportModule } from '@nestjs/passport';
import { JwtModule } from '@nestjs/jwt';
import { AuthService } from '../auth/auth.service.mock';
import { JwtStrategy } from '../common/strategies/jwt.strategy';
import { ConfigModule } from '../shared/config/config.module';
import { INestApplication, ValidationPipe } from '@nestjs/common'
import { Reflector } from '@nestjs/core'
import { Test } from '@nestjs/testing'
import { JwtAuthGuard } from '../common/guards/auth/jwt-auth.guard'
import { AccessController } from './access.controller'
import { NeverminedModule } from '../shared/nevermined/nvm.module'
import request from 'supertest'
import { PassportModule } from '@nestjs/passport'
import { JwtModule } from '@nestjs/jwt'
import { AuthService } from '../auth/auth.service.mock'
import { JwtStrategy } from '../common/strategies/jwt.strategy'
import { ConfigModule } from '../shared/config/config.module'

/* eslint-disable @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-argument */

describe('Info', () => {
let app: INestApplication;
let authService: AuthService;
let app: INestApplication
let authService: AuthService
beforeAll(async () => {
const moduleRef = await Test.createTestingModule({
imports: [
Expand All @@ -30,19 +30,19 @@ describe('Info', () => {
providers: [AuthService, JwtStrategy],
controllers: [AccessController],
exports: [],
}).compile();
app = moduleRef.createNestApplication();
authService = moduleRef.get<AuthService>(AuthService);
app.useGlobalPipes(new ValidationPipe());
app.useGlobalGuards(new JwtAuthGuard(new Reflector()));
await app.init();
});
}).compile()
app = moduleRef.createNestApplication()
authService = moduleRef.get<AuthService>(AuthService)
app.useGlobalPipes(new ValidationPipe())
app.useGlobalGuards(new JwtAuthGuard(new Reflector()))
await app.init()
})
it('no DID', async () => {
const response = await request(app.getHttpServer())
.get(`/access/0x/123`)
.set('Authorization', `Bearer ${await authService.createToken({})}`);
expect((response.error as any).text).toContain('DID not specified');
});
.set('Authorization', `Bearer ${await authService.createToken({})}`)
expect((response.error as any).text).toContain('DID not specified')
})
it('access / unknown asset', async () => {
const response = await request(app.getHttpServer())
.get(`/access/0x/123`)
Expand All @@ -51,9 +51,9 @@ describe('Info', () => {
`Bearer ${await authService.createToken({
did: 'did:nv:0ebed8226ada17fde24b6bf2b95d27f8f05fcce09139ff5cec31f6d81a7cd2ea',
})}`,
);
expect((response.error as any).text).toContain('No such DID');
});
)
expect((response.error as any).text).toContain('No such DID')
})
it('download / unknown asset', async () => {
const response = await request(app.getHttpServer())
.get(`/download/123`)
Expand All @@ -62,9 +62,9 @@ describe('Info', () => {
`Bearer ${await authService.createToken({
did: 'did:nv:0ebed8226ada17fde24b6bf2b95d27f8f05fcce09139ff5cec31f6d81a7cd2ea',
})}`,
);
expect((response.error as any).text).toContain('No such DID');
});
)
expect((response.error as any).text).toContain('No such DID')
})
it('nft-access / unknown asset', async () => {
const response = await request(app.getHttpServer())
.get(`/nft-access/0x/123`)
Expand All @@ -73,42 +73,42 @@ describe('Info', () => {
`Bearer ${await authService.createToken({
did: 'did:nv:0ebed8226ada17fde24b6bf2b95d27f8f05fcce09139ff5cec31f6d81a7cd2ea',
})}`,
);
expect((response.error as any).text).toContain('No such DID');
});
)
expect((response.error as any).text).toContain('No such DID')
})
it('nft-transfer / no post data', async () => {
const response = await request(app.getHttpServer()).post(`/nft-transfer`);
expect((response.error as any).text).toContain('must be a string');
});
const response = await request(app.getHttpServer()).post(`/nft-transfer`)
expect((response.error as any).text).toContain('must be a string')
})
it('nft-transfer / unknown agreement', async () => {
const response = await request(app.getHttpServer()).post(`/nft-transfer`).send({
nftType: 1155,
agreementId: '0ebed8226ada17fde24b6bf2b95d27f8f05fcce09139ff5cec31f6d81a7cd2ea',
nftReceiver: '0x123',
nftHolder: '0x123',
nftAmount: '1',
});
expect(response.statusCode).toBe(404);
expect((response.error as any).text).toContain('Agreement');
});
})
expect(response.statusCode).toBe(404)
expect((response.error as any).text).toContain('Agreement')
})
it('upload / no params', async () => {
const response = await request(app.getHttpServer()).post(`/upload/ipfs`);
expect(response.statusCode).toBe(400);
expect((response.error as any).text).toContain('No file or message');
});
const response = await request(app.getHttpServer()).post(`/upload/ipfs`)
expect(response.statusCode).toBe(400)
expect((response.error as any).text).toContain('No file or message')
})
it('upload wrong backend', async () => {
const response = await request(app.getHttpServer()).post(`/upload/wrong`).send({
message: 'hi there',
});
expect(response.statusCode).toBe(400);
expect((response.error as any).text).toContain('Backend wrong not supported');
});
})
expect(response.statusCode).toBe(400)
expect((response.error as any).text).toContain('Backend wrong not supported')
})
it('upload ipfs', async () => {
const response = await request(app.getHttpServer()).post(`/upload/ipfs`).send({
message: 'hi there',
});
expect(response.statusCode).toBe(201);
console.log(JSON.stringify(response.body));
expect(response.body.url).toContain('cid://');
});
});
})
expect(response.statusCode).toBe(201)
console.log(JSON.stringify(response.body))
expect(response.body.url).toContain('cid://')
})
})
6 changes: 3 additions & 3 deletions src/access/access.module.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { Module } from '@nestjs/common';
import { NeverminedModule } from '../shared/nevermined/nvm.module';
import { AccessController } from './access.controller';
import { Module } from '@nestjs/common'
import { NeverminedModule } from '../shared/nevermined/nvm.module'
import { AccessController } from './access.controller'

@Module({
providers: [],
Expand Down
14 changes: 7 additions & 7 deletions src/access/dto/transfer.ts
Original file line number Diff line number Diff line change
@@ -1,39 +1,39 @@
import { ApiProperty } from '@nestjs/swagger';
import { IsNumber, IsString } from 'class-validator';
import { ApiProperty } from '@nestjs/swagger'
import { IsNumber, IsString } from 'class-validator'

export class TransferDto {
@ApiProperty({
description: 'The agreement for NFT transfer',
example: '0x...',
})
@IsString()
agreementId: string;
agreementId: string

@ApiProperty({
description: 'NFT holder address',
example: '0x...',
})
@IsString()
nftHolder: string;
nftHolder: string

@ApiProperty({
description: 'NFT receiver address',
example: '0x...',
})
@IsString()
nftReceiver: string;
nftReceiver: string

@ApiProperty({
description: 'Number of NFTs to transfer',
example: '1',
})
@IsString()
nftAmount: string;
nftAmount: string

@ApiProperty({
description: 'Type of NFT',
example: '721',
})
@IsNumber()
nftType: number;
nftType: number
}

0 comments on commit 0472490

Please sign in to comment.