Skip to content

Commit

Permalink
Updated create job method
Browse files Browse the repository at this point in the history
  • Loading branch information
eugenvoronov committed Aug 15, 2023
1 parent 8a545c9 commit f9736c2
Show file tree
Hide file tree
Showing 9 changed files with 460 additions and 178 deletions.
5 changes: 4 additions & 1 deletion packages/apps/job-launcher/server/.env.example
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,7 @@ STRIPE_SECRET_KEY=
STRIPE_API_VERSION=
STRIPE_APP_NAME=
STRIPE_APP_VERSION=
STRIPE_APP_INFO_URL=
STRIPE_APP_INFO_URL=

# Sendgrid
SENDGRID_API_KEY=
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@ export enum ErrorJob {
WebhookWasNotSent = 'Webhook was not sent',
ResultNotFound = 'Result not found',
ResultValidationFailed = 'Result validation failed',
InvalidRequestType = 'Invalid a job request type',
JobParamsValidationFailed = 'Job parameters validation failed',
}

/**
Expand Down
12 changes: 7 additions & 5 deletions packages/apps/job-launcher/server/src/common/utils/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import { TokenId } from "../enums/payment";
import { COINGECKO_API_URL } from "../constants";
import { NotFoundException } from "@nestjs/common";
import { ErrorCurrency } from "../constants/errors";
import { HttpService } from "@nestjs/axios";

export async function getRate(from: string, to: string): Promise<number> {
let reversed = false;
Expand All @@ -14,11 +15,12 @@ export async function getRate(from: string, to: string): Promise<number> {
reversed = true;
}

const { data } = await firstValueFrom(
this.httpService.get(
`${COINGECKO_API_URL}?ids=${from}&vs_currencies=${to}`,
),
) as any;
const httpService = new HttpService()
const { data } = await firstValueFrom(
httpService.get(
`${COINGECKO_API_URL}?ids=${from}&vs_currencies=${to}`,
),
) as any;

if (!data[from] || !data[from][to]) {
throw new NotFoundException(ErrorCurrency.PairNotFound);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import {
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
import { JwtAuthGuard } from 'src/common/guards';
import { RequestWithUser } from 'src/common/types';
import { JobCvatDto, JobFortuneDto } from './job.dto';
import { CreateJobDto, JobCvatDto, JobFortuneDto } from './job.dto';
import { JobService } from './job.service';

@ApiBearerAuth()
Expand All @@ -22,19 +22,11 @@ export class JobController {
@Post('/fortune')
public async createFortuneJob(
@Request() req: RequestWithUser,
@Body() data: JobFortuneDto,
@Body() data: CreateJobDto,
): Promise<number> {
return this.jobService.createFortuneJob(req.user.id, data);
return this.jobService.createJob(req.user.id, data);
}

@Post('/cvat')
public async createCvatJob(
@Request() req: RequestWithUser,
@Body() data: JobCvatDto,
): Promise<number> {
return this.jobService.createCvatJob(req.user.id, data);
}


@Get('/result')
public async getResult(@Request() req: any): Promise<any> {
return this.jobService.getResult(req.user?.id);
Expand Down
71 changes: 46 additions & 25 deletions packages/apps/job-launcher/server/src/modules/job/job.dto.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,21 +23,23 @@ export class JobCreateDto {
public waitUntil: Date;
}

export class JobFortuneDto {
export class CreateJobDto {
@ApiProperty({
enum: ChainId,
})
@IsEnum(ChainId)
@IsOptional()
public chainId?: ChainId;

@ApiProperty()
@IsNumber()
public fortunesRequired: number;
@ApiProperty({
enum: JobRequestType,
})
@IsEnum(JobRequestType)
public requestType: JobRequestType;

@ApiProperty()
@IsString()
public requesterTitle: string;
@IsNumber()
public submissionsRequired: number;

@ApiProperty()
@IsString()
Expand All @@ -47,41 +49,60 @@ export class JobFortuneDto {
@IsNumber()
@IsPositive()
public fundAmount: number;
}

export class JobCvatDto {
@ApiProperty({
enum: ChainId,
})
@IsEnum(ChainId)
@ApiPropertyOptional()
@IsString()
@IsOptional()
public chainId?: ChainId;
public requesterTitle?: string;

@ApiProperty()
@ApiPropertyOptional()
@IsUrl()
public dataUrl: string;
@IsOptional()
public dataUrl?: string;

@ApiProperty()
@ApiPropertyOptional()
@IsArray()
@IsOptional()
public labels?: string[];

@ApiPropertyOptional()
@IsNumber()
public annotationsPerImage: number;
@IsPositive()
@IsOptional()
public requesterAccuracyTarget?: number;
}

@ApiProperty()
@IsArray()
public labels: string[];
export class JobDto {
@IsEnum(ChainId)
@IsOptional()
public chainId?: ChainId;

@IsNumber()
public submissionsRequired: number;

@ApiProperty()
@IsString()
public requesterDescription: string;

@ApiProperty()
@IsNumber()
@IsPositive()
public requesterAccuracyTarget: number;
public fundAmount: number;
}

export class JobFortuneDto extends JobDto {
@IsString()
public requesterTitle: string;
}

export class JobCvatDto extends JobDto {
@IsUrl()
public dataUrl: string;

@IsArray()
public labels: string[];

@ApiProperty()
@IsNumber()
@IsPositive()
public fundAmount: number;
public requesterAccuracyTarget: number;
}

export class JobUpdateDto {
Expand Down
Loading

0 comments on commit f9736c2

Please sign in to comment.