diff --git a/src/auth/auth.service.ts b/src/auth/auth.service.ts index a900dfb..b0c846c 100644 --- a/src/auth/auth.service.ts +++ b/src/auth/auth.service.ts @@ -107,7 +107,7 @@ export class AuthService { if(body.otp != newOtp[0].otp){ throw new UnauthorizedException('Unauthorized Access') } - + console.log("salt1234"); const salt = await bcrypt.genSalt(); iuserData.salt = salt; iuserData.pass = await bcrypt.hash(body.pass, salt); @@ -153,7 +153,7 @@ export class AuthService { console.log("isUserExist",isUserExist); - if(!isUserExist){ + if(!isUserExist && flag == "F"){ throw new BadRequestException("User not found"); } if (flag == 'R' && isUserExist) { @@ -287,7 +287,6 @@ export class AuthService { } try { - let igotp: PcdotpDto = new PcdotpDto(); igotp.otp = newOtp; igotp.createdBy = 'SYSTEM'; diff --git a/src/dto/tender-document.dto.ts b/src/dto/tender-document.dto.ts index d8131d2..59c3cae 100644 --- a/src/dto/tender-document.dto.ts +++ b/src/dto/tender-document.dto.ts @@ -9,4 +9,6 @@ export class TenderDocumentDto{ doc_type:string; doc_size:number; + + doc_category:string } \ No newline at end of file diff --git a/src/framework/beans/pcd-form-grid.controller.ts b/src/framework/beans/pcd-form-grid.controller.ts index 6945e1e..e02defa 100644 --- a/src/framework/beans/pcd-form-grid.controller.ts +++ b/src/framework/beans/pcd-form-grid.controller.ts @@ -3,6 +3,8 @@ import { GetUser } from "src/auth/dto/get-user.decorator"; import { PcduserDto } from "src/auth/dto/pcd-user.dto"; import { FindManyOptions } from "typeorm"; import { PcdFormGridService } from "./pcd-form-grid.service"; +import { AuthGuard } from "@nestjs/passport"; +import { AuthModule } from "src/auth/auth.module"; export class PcdFormGridController{ private logger = new Logger('PcdFormGridController'); // for logging diff --git a/src/framework/beans/pcd-transaction.controller.ts b/src/framework/beans/pcd-transaction.controller.ts index 1b6074a..b4f0b2d 100644 --- a/src/framework/beans/pcd-transaction.controller.ts +++ b/src/framework/beans/pcd-transaction.controller.ts @@ -22,6 +22,7 @@ export class PcdTransactionController { return await this.service.findOne(filter, id); } + @UseGuards(AuthGuard()) @Post() async createOne(@Body() body: T, ): Promise { return await this.service.createOne(body,); diff --git a/src/tables/document-type/document-type.controller.ts b/src/tables/document-type/document-type.controller.ts index 8995b79..99005bc 100644 --- a/src/tables/document-type/document-type.controller.ts +++ b/src/tables/document-type/document-type.controller.ts @@ -1,8 +1,11 @@ -import { Controller } from '@nestjs/common'; +import { Controller,UseGuards } from '@nestjs/common'; import { DocumentTypeDto } from 'src/dto/document-type.dto'; import { PcdFormGridController } from 'src/framework/beans/pcd-form-grid.controller'; import { DocumentTypeService } from './document-type.service'; +import { AuthGuard } from '@nestjs/passport'; + +@UseGuards(AuthGuard()) @Controller('document-type') export class DocumentTypeController extends PcdFormGridController{ diff --git a/src/tables/document-type/document-type.module.ts b/src/tables/document-type/document-type.module.ts index af969dc..51425ae 100644 --- a/src/tables/document-type/document-type.module.ts +++ b/src/tables/document-type/document-type.module.ts @@ -3,10 +3,12 @@ import { DocumentTypeController } from './document-type.controller'; import { DocumentTypeService } from './document-type.service'; import { TypeOrmModule } from '@nestjs/typeorm'; import { DocumentTypeRepository } from './document-type.repository'; +import { AuthModule } from 'src/auth/auth.module'; @Module({ imports: [ - TypeOrmModule.forFeature([DocumentTypeRepository]) + TypeOrmModule.forFeature([DocumentTypeRepository]), + AuthModule ], controllers: [DocumentTypeController], providers: [DocumentTypeService] diff --git a/src/tables/emd-fee-type/emd-fee-type.controller.ts b/src/tables/emd-fee-type/emd-fee-type.controller.ts index 31c6d99..31b6ebc 100644 --- a/src/tables/emd-fee-type/emd-fee-type.controller.ts +++ b/src/tables/emd-fee-type/emd-fee-type.controller.ts @@ -1,8 +1,11 @@ -import { Controller } from '@nestjs/common'; +import { Controller,UseGuards } from '@nestjs/common'; import { EmdFeeTypeDto } from 'src/dto/emd-fee-type.dto'; import { PcdFormGridController } from 'src/framework/beans/pcd-form-grid.controller'; import { EmdFeeTypeService } from './emd-fee-type.service'; +import { AuthGuard } from '@nestjs/passport'; + +@UseGuards(AuthGuard()) @Controller('emd-fee-type') export class EmdFeeTypeController extends PcdFormGridController{ diff --git a/src/tables/emd-fee-type/emd-fee-type.module.ts b/src/tables/emd-fee-type/emd-fee-type.module.ts index 0fb1342..0c9f36c 100644 --- a/src/tables/emd-fee-type/emd-fee-type.module.ts +++ b/src/tables/emd-fee-type/emd-fee-type.module.ts @@ -3,10 +3,12 @@ import { EmdFeeTypeController } from './emd-fee-type.controller'; import { EmdFeeTypeService } from './emd-fee-type.service'; import { TypeOrmModule } from '@nestjs/typeorm'; import { EmdFeeTypeRepository } from './emd-fee-type.repository'; +import { AuthModule } from 'src/auth/auth.module'; @Module({ imports: [ - TypeOrmModule.forFeature([EmdFeeTypeRepository]) + TypeOrmModule.forFeature([EmdFeeTypeRepository]), + AuthModule ], controllers: [EmdFeeTypeController], providers: [EmdFeeTypeService] diff --git a/src/tables/form-of-contract/form-of-contract.controller.ts b/src/tables/form-of-contract/form-of-contract.controller.ts index 70c1719..dfad871 100644 --- a/src/tables/form-of-contract/form-of-contract.controller.ts +++ b/src/tables/form-of-contract/form-of-contract.controller.ts @@ -1,8 +1,11 @@ -import { Controller } from '@nestjs/common'; +import { Controller ,UseGuards} from '@nestjs/common'; import { FormOfContractDto } from 'src/dto/form-of-contract.dto'; import { PcdFormGridController } from 'src/framework/beans/pcd-form-grid.controller'; import { FormOfContractService } from './form-of-contract.service'; +import { AuthGuard } from '@nestjs/passport'; + +@UseGuards(AuthGuard()) @Controller('form-of-contract') export class FormOfContractController extends PcdFormGridController { constructor( diff --git a/src/tables/form-of-contract/form-of-contract.module.ts b/src/tables/form-of-contract/form-of-contract.module.ts index f5a8c21..ec4bddf 100644 --- a/src/tables/form-of-contract/form-of-contract.module.ts +++ b/src/tables/form-of-contract/form-of-contract.module.ts @@ -4,10 +4,12 @@ import { FormOfContractService } from './form-of-contract.service'; import { typeOrmConfig } from 'src/config/typeorm.config'; import { TypeOrmModule } from '@nestjs/typeorm'; import { FormOfContractRepository } from './form-of-contract.repository'; +import { AuthModule } from 'src/auth/auth.module'; @Module({ imports: [ - TypeOrmModule.forFeature([FormOfContractRepository]) + TypeOrmModule.forFeature([FormOfContractRepository]), + AuthModule ], controllers: [FormOfContractController], providers: [FormOfContractService] diff --git a/src/tables/payment-mode/payment-mode.controller.ts b/src/tables/payment-mode/payment-mode.controller.ts index f4f97fb..c8243a4 100644 --- a/src/tables/payment-mode/payment-mode.controller.ts +++ b/src/tables/payment-mode/payment-mode.controller.ts @@ -1,8 +1,11 @@ -import { Controller } from '@nestjs/common'; +import { Controller,UseGuards } from '@nestjs/common'; import { PaymentModeDto } from 'src/dto/payment-mode.dto'; import { PcdFormGridController } from 'src/framework/beans/pcd-form-grid.controller'; import { PaymentModeService } from './payment-mode.service'; +import { AuthGuard } from '@nestjs/passport'; + +@UseGuards(AuthGuard()) @Controller('payment-mode') export class PaymentModeController extends PcdFormGridController { diff --git a/src/tables/payment-mode/payment-mode.module.ts b/src/tables/payment-mode/payment-mode.module.ts index 6e9bd75..7c29d40 100644 --- a/src/tables/payment-mode/payment-mode.module.ts +++ b/src/tables/payment-mode/payment-mode.module.ts @@ -3,10 +3,12 @@ import { PaymentModeController } from './payment-mode.controller'; import { PaymentModeService } from './payment-mode.service'; import { TypeOrmModule } from '@nestjs/typeorm'; import { PaymentModeRepository } from './payment-mode.repository'; +import { AuthModule } from 'src/auth/auth.module'; @Module({ imports: [ - TypeOrmModule.forFeature([PaymentModeRepository]) + TypeOrmModule.forFeature([PaymentModeRepository]), + AuthModule ], controllers: [PaymentModeController], providers: [PaymentModeService] diff --git a/src/tables/product-category/product-category.controller.ts b/src/tables/product-category/product-category.controller.ts index 39a1dbb..dea1b46 100644 --- a/src/tables/product-category/product-category.controller.ts +++ b/src/tables/product-category/product-category.controller.ts @@ -1,8 +1,10 @@ -import { Controller } from '@nestjs/common'; +import { Controller ,UseGuards} from '@nestjs/common'; import { ProductCategoryDto } from 'src/dto/product-category.dto'; import { PcdFormGridController } from 'src/framework/beans/pcd-form-grid.controller'; import { ProductCategoryService } from './product-category.service'; +import { AuthGuard } from '@nestjs/passport'; +@UseGuards(AuthGuard()) @Controller('product-category') export class ProductCategoryController extends PcdFormGridController { diff --git a/src/tables/product-category/product-category.module.ts b/src/tables/product-category/product-category.module.ts index b9ee4ba..0b788af 100644 --- a/src/tables/product-category/product-category.module.ts +++ b/src/tables/product-category/product-category.module.ts @@ -3,10 +3,12 @@ import { ProductCategoryController } from './product-category.controller'; import { ProductCategoryService } from './product-category.service'; import { TypeOrmModule } from '@nestjs/typeorm'; import { ProductCategoryRepository } from './product-category.repository'; +import { AuthModule } from 'src/auth/auth.module'; @Module({ imports: [ - TypeOrmModule.forFeature([ProductCategoryRepository]) + TypeOrmModule.forFeature([ProductCategoryRepository]), + AuthModule ], controllers: [ProductCategoryController], providers: [ProductCategoryService] diff --git a/src/tables/tender-category/tender-category.controller.ts b/src/tables/tender-category/tender-category.controller.ts index 430d84b..f3353ec 100644 --- a/src/tables/tender-category/tender-category.controller.ts +++ b/src/tables/tender-category/tender-category.controller.ts @@ -1,8 +1,10 @@ -import { Controller } from '@nestjs/common'; +import { Controller ,UseGuards} from '@nestjs/common'; import { TenderCategoryDto } from 'src/dto/tender-category.dto'; import { PcdFormGridController } from 'src/framework/beans/pcd-form-grid.controller'; import { TenderCategoryService } from './tender-category.service'; +import { AuthGuard } from '@nestjs/passport'; +@UseGuards(AuthGuard()) @Controller('tender-category') export class TenderCategoryController extends PcdFormGridController{ diff --git a/src/tables/tender-category/tender-category.module.ts b/src/tables/tender-category/tender-category.module.ts index ade7bdb..5d1f846 100644 --- a/src/tables/tender-category/tender-category.module.ts +++ b/src/tables/tender-category/tender-category.module.ts @@ -3,10 +3,12 @@ import { TenderCategoryController } from './tender-category.controller'; import { TenderCategoryService } from './tender-category.service'; import { TypeOrmModule } from '@nestjs/typeorm'; import { TenderCategoryRepository } from './tender-category.repository'; +import { AuthModule } from 'src/auth/auth.module'; @Module({ imports: [ - TypeOrmModule.forFeature([TenderCategoryRepository]) + TypeOrmModule.forFeature([TenderCategoryRepository]), + AuthModule ], controllers: [TenderCategoryController], providers: [TenderCategoryService] diff --git a/src/tables/tender-documents/tender-doc.controller.ts b/src/tables/tender-documents/tender-doc.controller.ts index 88318df..6ec22ec 100644 --- a/src/tables/tender-documents/tender-doc.controller.ts +++ b/src/tables/tender-documents/tender-doc.controller.ts @@ -1,8 +1,10 @@ -import { Controller } from '@nestjs/common'; +import { Controller ,UseGuards} from '@nestjs/common'; import { TenderDocumentDto } from 'src/dto/tender-document.dto'; import { PcdFormGridController } from 'src/framework/beans/pcd-form-grid.controller'; import { TenderDocService } from './tender-doc.service'; +import { AuthGuard } from '@nestjs/passport'; +@UseGuards(AuthGuard()) @Controller('tender-doc') export class TenderDocController extends PcdFormGridController{ diff --git a/src/tables/tender-documents/tender-doc.entity.ts b/src/tables/tender-documents/tender-doc.entity.ts index 53111c4..679a862 100644 --- a/src/tables/tender-documents/tender-doc.entity.ts +++ b/src/tables/tender-documents/tender-doc.entity.ts @@ -1,25 +1,24 @@ import { PcdBaseEntity } from "src/framework/custom/pcd-entity.custom"; import { TenderMaster } from "src/tables/tender-master/tender-master.entity"; -import { Column, Entity, JoinColumn, ManyToOne, PrimaryColumn } from "typeorm"; +import { Column, Entity, JoinColumn, ManyToOne, PrimaryColumn, PrimaryGeneratedColumn } from "typeorm"; import { DocumentType } from "../document-type/document-type.entity"; @Entity("tender-doc") export class TenderDoc extends PcdBaseEntity{ - @PrimaryColumn({ + @PrimaryGeneratedColumn({ name:"id" }) id:number @Column({ name:"tender_id", type:"numeric", - // length:500, nullable:true }) tenderId:number @Column({ name:"doc_name", type:"varchar", - length:500, + length:1500, nullable:true }) docName:string @@ -32,7 +31,7 @@ export class TenderDoc extends PcdBaseEntity{ @Column({ name:"description", type:"varchar", - length:500, + length:1500, nullable:true }) description:string @@ -44,6 +43,12 @@ export class TenderDoc extends PcdBaseEntity{ }) documentSize:number; + @Column({ + name:"tender_category", + type:"varchar", + nullable:true + }) +tenderCategory:string @ManyToOne(() => TenderMaster,(tenderMaster)=> tenderMaster.TenderDoc) @JoinColumn([{ name: "tender_id", referencedColumnName: "id" }]) diff --git a/src/tables/tender-documents/tender-doc.module.ts b/src/tables/tender-documents/tender-doc.module.ts index 02c2b05..130933c 100644 --- a/src/tables/tender-documents/tender-doc.module.ts +++ b/src/tables/tender-documents/tender-doc.module.ts @@ -3,10 +3,12 @@ import { TenderDocService } from './tender-doc.service'; import { TenderDocController } from './tender-doc.controller'; import { tenderDocRepository } from './tender-doc.repository'; import { TypeOrmModule } from '@nestjs/typeorm'; +import { AuthModule } from 'src/auth/auth.module'; @Module({ imports: [ - TypeOrmModule.forFeature([tenderDocRepository]) + TypeOrmModule.forFeature([tenderDocRepository]), + AuthModule ], providers: [TenderDocService], controllers: [TenderDocController] diff --git a/src/tables/tender-master/tender-details.controller.ts b/src/tables/tender-master/tender-details.controller.ts index e70ba46..d4c3e83 100644 --- a/src/tables/tender-master/tender-details.controller.ts +++ b/src/tables/tender-master/tender-details.controller.ts @@ -1,8 +1,10 @@ -import { Controller,Get, Param} from '@nestjs/common'; +import { Controller,Get, Param,UseGuards} from '@nestjs/common'; import { TenderDetailsService } from './tender-details.service'; import { PcdFormGridController } from 'src/framework/beans/pcd-form-grid.controller'; import { TenderMaster } from './tender-master.entity'; import { TenderDetailDto } from 'src/dto/tender-master.dto'; +import { AuthGuard } from '@nestjs/passport'; + @Controller('tender-details') export class TenderDetailsController extends PcdFormGridController { diff --git a/src/tables/tender-master/tender-details.module.ts b/src/tables/tender-master/tender-details.module.ts index fe0bbe2..d835f56 100644 --- a/src/tables/tender-master/tender-details.module.ts +++ b/src/tables/tender-master/tender-details.module.ts @@ -4,12 +4,13 @@ import { TenderDetailsService } from './tender-details.service'; import { TenderMasterRepository } from './tender-master.repository'; import { TypeOrmModule } from '@nestjs/typeorm'; + @Module({ imports: [ TypeOrmModule.forFeature([ TenderMasterRepository - ]), + ]) ], controllers: [TenderDetailsController], providers: [TenderDetailsService] diff --git a/src/tables/tender-master/tender-master.entity.ts b/src/tables/tender-master/tender-master.entity.ts index 3bb91c8..6d3985b 100644 --- a/src/tables/tender-master/tender-master.entity.ts +++ b/src/tables/tender-master/tender-master.entity.ts @@ -224,7 +224,7 @@ export class TenderMaster extends PcdBaseEntity{ pincode:string @Column({ name:"pre_bid_date", - type:"date", + type:"timestamp", nullable:true }) preBidDate:Date @@ -264,49 +264,49 @@ export class TenderMaster extends PcdBaseEntity{ bidOpeningPlace:string @Column({ name:"publish_date", - type:"date", + type:"timestamp", nullable:true }) publishDate:Date @Column({ name:"sale_start_date", - type:"date", + type:"timestamp", nullable:true }) saleStartDate:Date @Column({ name:"clarification_start_d", - type:"date", + type:"timestamp", nullable:true }) clarificationStartDate:Date @Column({ name:"bid_sub_start_date", - type:"date", + type:"timestamp", nullable:true }) bidSubStartDate:Date @Column({ name:"bid_open_date", - type:"date", + type:"timestamp", nullable:true }) bidOpenDate:Date @Column({ name:"sale_end_date", - type:"date", + type:"timestamp", nullable:true }) saleEndDate:Date @Column({ name:"clarification_end_d", - type:"date", + type:"timestamp", nullable:true }) clarificationEndDate:Date @Column({ name:"bid_sub_end_date", - type:"date", + type:"timestamp", nullable:true }) bidSubEndDate:Date diff --git a/src/tables/tender-type/tender-type.controller.ts b/src/tables/tender-type/tender-type.controller.ts index 20455e9..e5fa9cd 100644 --- a/src/tables/tender-type/tender-type.controller.ts +++ b/src/tables/tender-type/tender-type.controller.ts @@ -1,8 +1,11 @@ -import { Controller } from '@nestjs/common'; +import { Controller, UseGuards } from '@nestjs/common'; import { TenderTypeDto } from 'src/dto/tender-type.dto'; import { PcdFormGridController } from 'src/framework/beans/pcd-form-grid.controller'; import { TenderTypeService } from './tender-type.service'; +import { AuthGuard } from '@nestjs/passport'; + +@UseGuards(AuthGuard()) @Controller('tender-type') export class TenderTypeController extends PcdFormGridController{ diff --git a/src/tables/tender-type/tender-type.module.ts b/src/tables/tender-type/tender-type.module.ts index cc0e5c9..9a7ddee 100644 --- a/src/tables/tender-type/tender-type.module.ts +++ b/src/tables/tender-type/tender-type.module.ts @@ -3,10 +3,12 @@ import { TenderTypeController } from './tender-type.controller'; import { TenderTypeService } from './tender-type.service'; import { TypeOrmModule } from '@nestjs/typeorm'; import { TenderTypeRepository } from './tender-type.repository'; +import { AuthModule } from 'src/auth/auth.module'; @Module({ imports: [ - TypeOrmModule.forFeature([TenderTypeRepository]) + TypeOrmModule.forFeature([TenderTypeRepository]), + AuthModule ], controllers: [TenderTypeController], providers: [TenderTypeService] diff --git a/src/transactions/tender/tender.controller.ts b/src/transactions/tender/tender.controller.ts index 2fda142..e569981 100644 --- a/src/transactions/tender/tender.controller.ts +++ b/src/transactions/tender/tender.controller.ts @@ -1,4 +1,14 @@ -import { Controller } from '@nestjs/common'; +import { Controller,UseGuards } from '@nestjs/common'; +import { TenderDetailDto } from 'src/dto/tender-master.dto'; +import { PcdTransactionController } from 'src/framework/beans/pcd-transaction.controller'; +import { TenderService } from './tender.service'; +import { AuthGuard } from '@nestjs/passport'; +@UseGuards(AuthGuard()) @Controller('tender') -export class TenderController {} +export class TenderController extends PcdTransactionController { + constructor( + private tenderService: TenderService + ) { + super(tenderService); + }} diff --git a/src/transactions/tender/tender.module.ts b/src/transactions/tender/tender.module.ts index 10da83b..06dbaf7 100644 --- a/src/transactions/tender/tender.module.ts +++ b/src/transactions/tender/tender.module.ts @@ -1,8 +1,15 @@ import { Module } from '@nestjs/common'; import { TenderController } from './tender.controller'; import { TenderService } from './tender.service'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { TenderMasterRepository } from 'src/tables/tender-master/tender-master.repository'; +import { AuthModule } from 'src/auth/auth.module'; @Module({ + imports: [ + TypeOrmModule.forFeature([TenderMasterRepository]), + AuthModule + ], controllers: [TenderController], providers: [TenderService] }) diff --git a/src/transactions/tender/tender.service.ts b/src/transactions/tender/tender.service.ts index 096b8cd..3386cb0 100644 --- a/src/transactions/tender/tender.service.ts +++ b/src/transactions/tender/tender.service.ts @@ -1,7 +1,33 @@ import { Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; import { TenderDetailDto } from 'src/dto/tender-master.dto'; import { PcdTransactionService } from 'src/framework/beans/pcd-transaction.service'; import { TransactionDetailDto } from 'src/framework/custom/transaction-detail.dto'; +import { tenderDocRepository } from 'src/tables/tender-documents/tender-doc.repository'; +import { TenderMasterRepository } from 'src/tables/tender-master/tender-master.repository'; +import { Connection } from 'typeorm'; @Injectable() -export class TenderService{} +export class TenderService extends PcdTransactionService{ + MAIN_KEY: string = 'id'; + + DETAIL_DATA_FORMAT: TransactionDetailDto[] = [ + { + detailName: "tenderDoc", repo: this.conn.getCustomRepository(tenderDocRepository), + filter: [{ columnName: "tenderId", headerColumn: "id" }], + foreignKeyColumnName: "tenderId", + childDetail: [], + addtionalSettingOfRowsInInsertion: [], + orderByColumn: { columnName: "id", sort: "DESC" } + } + ]; + constructor( + private conn: Connection, + @InjectRepository(TenderMasterRepository) + private tenderMasterRepository: TenderMasterRepository, + ){ + super(conn, conn.getCustomRepository(TenderMasterRepository)); + // this.TenderMasterRepository = conn.getCustomRepository(SisPaymentDetailRepository) + + } +} diff --git a/uploads/BankDocuments/5/2d15d10a9202e4e61c97dea16ddebccff.pdf b/uploads/BankDocuments/5/2d15d10a9202e4e61c97dea16ddebccff.pdf deleted file mode 100644 index 01c7ab3..0000000 Binary files a/uploads/BankDocuments/5/2d15d10a9202e4e61c97dea16ddebccff.pdf and /dev/null differ diff --git a/uploads/BankDocuments/5/8a56da596f97523e993f71007c26fcec8.zip b/uploads/BankDocuments/5/8a56da596f97523e993f71007c26fcec8.zip deleted file mode 100644 index a05ebb0..0000000 Binary files a/uploads/BankDocuments/5/8a56da596f97523e993f71007c26fcec8.zip and /dev/null differ diff --git a/uploads/BankDocuments/5/de3a5428c2f65e45555e2b8a9468a8a9.zip b/uploads/BankDocuments/5/de3a5428c2f65e45555e2b8a9468a8a9.zip deleted file mode 100644 index bf487c3..0000000 Binary files a/uploads/BankDocuments/5/de3a5428c2f65e45555e2b8a9468a8a9.zip and /dev/null differ