Skip to content

Commit b151a88

Browse files
committed
DRY file url schema def
1 parent d66b752 commit b151a88

File tree

4 files changed

+19
-24
lines changed

4 files changed

+19
-24
lines changed
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { ResolveField } from '@nestjs/graphql';
2+
import { stripIndent } from 'common-tags';
3+
import { URL } from 'url';
4+
5+
export const Resolver = () =>
6+
ResolveField(() => URL, {
7+
description: stripIndent`
8+
A url to the file.
9+
10+
This url could require authentication.
11+
`,
12+
});

src/components/file/file-version.resolver.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,19 +2,14 @@ import { Parent, ResolveField, Resolver } from '@nestjs/graphql';
22
import { stripIndent } from 'common-tags';
33
import { URL } from 'url';
44
import { FileVersion } from './dto';
5+
import * as FileUrl from './file-url.resolver-util';
56
import { FileService } from './file.service';
67

78
@Resolver(FileVersion)
89
export class FileVersionResolver {
910
constructor(protected readonly service: FileService) {}
1011

11-
@ResolveField(() => URL, {
12-
description: stripIndent`
13-
A url to the file version.
14-
15-
This url could require authentication.
16-
`,
17-
})
12+
@FileUrl.Resolver()
1813
async url(@Parent() node: FileVersion) {
1914
return await this.service.getUrl(node);
2015
}

src/components/file/file.resolver.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import {
3232
RequestUploadOutput,
3333
} from './dto';
3434
import { FileNodeLoader } from './file-node.loader';
35+
import * as FileUrl from './file-url.resolver-util';
3536
import { FileService } from './file.service';
3637

3738
@Resolver(File)
@@ -75,13 +76,7 @@ export class FileResolver {
7576
return await this.service.listChildren(node, input, session);
7677
}
7778

78-
@ResolveField(() => URL, {
79-
description: stripIndent`
80-
A url to the file.
81-
82-
This url could require authentication.
83-
`,
84-
})
79+
@FileUrl.Resolver()
8580
async url(@Parent() node: File) {
8681
return await this.service.getUrl(node);
8782
}

src/components/file/media-url.resolver.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,15 @@
1-
import { Parent, ResolveField, Resolver } from '@nestjs/graphql';
1+
import { Parent, Resolver } from '@nestjs/graphql';
22
import { Loader, LoaderOf } from '@seedcompany/data-loader';
3-
import { stripIndent } from 'common-tags';
4-
import { URL } from 'url';
53
import { FileNodeLoader } from './file-node.loader';
4+
import * as FileUrl from './file-url.resolver-util';
65
import { FileService } from './file.service';
76
import { Media } from './media/media.dto';
87

98
@Resolver(() => Media)
109
export class MediaUrlResolver {
1110
constructor(protected readonly service: FileService) {}
1211

13-
@ResolveField(() => URL, {
14-
description: stripIndent`
15-
A url to the file version.
16-
17-
This url could require authentication.
18-
`,
19-
})
12+
@FileUrl.Resolver()
2013
async url(
2114
@Parent() media: Media,
2215
@Loader(FileNodeLoader) files: LoaderOf<FileNodeLoader>,

0 commit comments

Comments
 (0)