Skip to content

Commit 11a349d

Browse files
feat: version check endpoint
1 parent 806000e commit 11a349d

File tree

10 files changed

+244
-1
lines changed

10 files changed

+244
-1
lines changed

mobile/openapi/README.md

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mobile/openapi/lib/api.dart

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mobile/openapi/lib/api/system_metadata_api.dart

Lines changed: 41 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mobile/openapi/lib/api_client.dart

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

mobile/openapi/lib/model/version_check_state_response_dto.dart

Lines changed: 115 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

open-api/immich-openapi-specs.json

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6846,6 +6846,38 @@
68466846
]
68476847
}
68486848
},
6849+
"/system-metadata/version-check-state": {
6850+
"get": {
6851+
"operationId": "getVersionCheckState",
6852+
"parameters": [],
6853+
"responses": {
6854+
"200": {
6855+
"content": {
6856+
"application/json": {
6857+
"schema": {
6858+
"$ref": "#/components/schemas/VersionCheckStateResponseDto"
6859+
}
6860+
}
6861+
},
6862+
"description": ""
6863+
}
6864+
},
6865+
"security": [
6866+
{
6867+
"bearer": []
6868+
},
6869+
{
6870+
"cookie": []
6871+
},
6872+
{
6873+
"api_key": []
6874+
}
6875+
],
6876+
"tags": [
6877+
"System Metadata"
6878+
]
6879+
}
6880+
},
68496881
"/tags": {
68506882
"get": {
68516883
"operationId": "getAllTags",
@@ -14939,6 +14971,23 @@
1493914971
},
1494014972
"type": "object"
1494114973
},
14974+
"VersionCheckStateResponseDto": {
14975+
"properties": {
14976+
"checkedAt": {
14977+
"nullable": true,
14978+
"type": "string"
14979+
},
14980+
"releaseVersion": {
14981+
"nullable": true,
14982+
"type": "string"
14983+
}
14984+
},
14985+
"required": [
14986+
"checkedAt",
14987+
"releaseVersion"
14988+
],
14989+
"type": "object"
14990+
},
1494214991
"VideoCodec": {
1494314992
"enum": [
1494414993
"h264",

open-api/typescript-sdk/src/fetch-client.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1402,6 +1402,10 @@ export type ReverseGeocodingStateResponseDto = {
14021402
lastImportFileName: string | null;
14031403
lastUpdate: string | null;
14041404
};
1405+
export type VersionCheckStateResponseDto = {
1406+
checkedAt: string | null;
1407+
releaseVersion: string | null;
1408+
};
14051409
export type TagCreateDto = {
14061410
color?: string;
14071411
name: string;
@@ -3284,6 +3288,14 @@ export function getReverseGeocodingState(opts?: Oazapfts.RequestOpts) {
32843288
...opts
32853289
}));
32863290
}
3291+
export function getVersionCheckState(opts?: Oazapfts.RequestOpts) {
3292+
return oazapfts.ok(oazapfts.fetchJson<{
3293+
status: 200;
3294+
data: VersionCheckStateResponseDto;
3295+
}>("/system-metadata/version-check-state", {
3296+
...opts
3297+
}));
3298+
}
32873299
export function getAllTags(opts?: Oazapfts.RequestOpts) {
32883300
return oazapfts.ok(oazapfts.fetchJson<{
32893301
status: 200;

server/src/controllers/system-metadata.controller.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
import { Body, Controller, Get, HttpCode, HttpStatus, Post } from '@nestjs/common';
22
import { ApiTags } from '@nestjs/swagger';
3-
import { AdminOnboardingUpdateDto, ReverseGeocodingStateResponseDto } from 'src/dtos/system-metadata.dto';
3+
import {
4+
AdminOnboardingUpdateDto,
5+
ReverseGeocodingStateResponseDto,
6+
VersionCheckStateResponseDto,
7+
} from 'src/dtos/system-metadata.dto';
48
import { Permission } from 'src/enum';
59
import { Authenticated } from 'src/middleware/auth.guard';
610
import { SystemMetadataService } from 'src/services/system-metadata.service';
@@ -28,4 +32,10 @@ export class SystemMetadataController {
2832
getReverseGeocodingState(): Promise<ReverseGeocodingStateResponseDto> {
2933
return this.service.getReverseGeocodingState();
3034
}
35+
36+
@Get('version-check-state')
37+
@Authenticated({ permission: Permission.SYSTEM_METADATA_READ, admin: true })
38+
getVersionCheckState(): Promise<VersionCheckStateResponseDto> {
39+
return this.service.getVersionCheckState();
40+
}
3141
}

server/src/dtos/system-metadata.dto.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,8 @@ export class ReverseGeocodingStateResponseDto {
1313
lastUpdate!: string | null;
1414
lastImportFileName!: string | null;
1515
}
16+
17+
export class VersionCheckStateResponseDto {
18+
checkedAt!: string | null;
19+
releaseVersion!: string | null;
20+
}

server/src/services/system-metadata.service.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import {
33
AdminOnboardingResponseDto,
44
AdminOnboardingUpdateDto,
55
ReverseGeocodingStateResponseDto,
6+
VersionCheckStateResponseDto,
67
} from 'src/dtos/system-metadata.dto';
78
import { SystemMetadataKey } from 'src/enum';
89
import { BaseService } from 'src/services/base.service';
@@ -24,4 +25,9 @@ export class SystemMetadataService extends BaseService {
2425
const value = await this.systemMetadataRepository.get(SystemMetadataKey.REVERSE_GEOCODING_STATE);
2526
return { lastUpdate: null, lastImportFileName: null, ...value };
2627
}
28+
29+
async getVersionCheckState(): Promise<VersionCheckStateResponseDto> {
30+
const value = await this.systemMetadataRepository.get(SystemMetadataKey.VERSION_CHECK_STATE);
31+
return { checkedAt: null, releaseVersion: null, ...value };
32+
}
2733
}

0 commit comments

Comments
 (0)