Skip to content

Commit 94c7594

Browse files
committed
deploy: a4970e8
1 parent 7b42347 commit 94c7594

33 files changed

+1337
-605
lines changed

classes/FilestorageUpdateDto.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ <h3>File</h3>
128128
<h3>Extends</h3>
129129
</p>
130130
<p class="comment">
131-
<code><a href="../miscellaneous/variables.html#storage" target="_self" >PartialType(FilestorageCreateDto)</a></code>
131+
<code>PartialType(FilestorageCreateDto)</code>
132132
</p>
133133

134134

controllers/AppController.html

Lines changed: 25 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -202,8 +202,8 @@ <h3 id="methods">
202202

203203
<tr>
204204
<td class="col-md-4">
205-
<div class="io-line">Defined in <a href="" data-line="73"
206-
class="link-to-prism">src/app.controller.ts:73</a></div>
205+
<div class="io-line">Defined in <a href="" data-line="20"
206+
class="link-to-prism">src/app.controller.ts:20</a></div>
207207
</td>
208208
</tr>
209209

@@ -267,7 +267,7 @@ <h3 id="methods">
267267
<tr>
268268
<td class="col-md-4">
269269
<span class="modifier-icon icon ion-ios-reset"></span>
270-
<code>update(res: Response, project?: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>, current?: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
270+
<code>update(res: Response, project?: <a href="../undefineds/ProjectsList.html" target="_self">ProjectsList</a>, current?: <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank">string</a>)</code>
271271
</td>
272272
</tr>
273273

@@ -281,8 +281,8 @@ <h3 id="methods">
281281

282282
<tr>
283283
<td class="col-md-4">
284-
<div class="io-line">Defined in <a href="" data-line="81"
285-
class="link-to-prism">src/app.controller.ts:81</a></div>
284+
<div class="io-line">Defined in <a href="" data-line="28"
285+
class="link-to-prism">src/app.controller.ts:28</a></div>
286286
</td>
287287
</tr>
288288

@@ -317,7 +317,7 @@ <h3 id="methods">
317317
<tr>
318318
<td>project</td>
319319
<td>
320-
<code><a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/string" target="_blank" >string</a></code>
320+
<code><a href="../miscellaneous/enumerations.html#ProjectsList" target="_self" >ProjectsList</a></code>
321321
</td>
322322

323323
<td>
@@ -357,64 +357,11 @@ <h3 id="methods">
357357

358358
<div class="tab-pane fade tab-source-code" id="source">
359359
<pre class="line-numbers compodoc-sourcecode"><code class="language-typescript">import { BadRequestException, Controller, Get, Param, Query, Res } from &#x27;@nestjs/common&#x27;;
360-
import { AppService } from &#x27;./app.service&#x27;;
360+
import { AppService, ProjectsList } from &#x27;./app.service&#x27;;
361361
import { Response } from &#x27;express&#x27;;
362362
import { AbstractController } from &#x27;~/_common/abstracts/abstract.controller&#x27;;
363363
import { Public } from &#x27;./_common/decorators/public.decorator&#x27;;
364364
import { ApiBearerAuth, ApiOperation, ApiQuery, ApiResponse } from &#x27;@nestjs/swagger&#x27;;
365-
import { LRUCache } from &#x27;lru-cache&#x27;;
366-
367-
interface GithubAuthor {
368-
login: string;
369-
id: number;
370-
node_id: string;
371-
avatar_url: string;
372-
gravatar_id: string;
373-
url: string;
374-
html_url: string;
375-
followers_url: string;
376-
following_url: string;
377-
gists_url: string;
378-
starred_url: string;
379-
subscriptions_url: string;
380-
organizations_url: string;
381-
repos_url: string;
382-
events_url: string;
383-
received_events_url: string;
384-
type: string;
385-
user_view_type: string;
386-
site_admin: boolean;
387-
}
388-
389-
interface GithubAsset {
390-
[key: string]: any;
391-
}
392-
393-
interface GithubUpdate {
394-
url: string;
395-
assets_url: string;
396-
upload_url: string;
397-
html_url: string;
398-
id: number;
399-
author: GithubAuthor;
400-
node_id: string;
401-
tag_name: string;
402-
target_commitish: string;
403-
name: string;
404-
draft: boolean;
405-
prerelease: boolean;
406-
created_at: string;
407-
published_at: string;
408-
assets: GithubAsset[];
409-
tarball_url: string;
410-
zipball_url: string;
411-
body: string;
412-
}
413-
414-
const storage &#x3D; new LRUCache({
415-
ttl: 1000 * 60 * 60,
416-
ttlAutopurge: true,
417-
});
418365

419366
@Public()
420367
@Controller()
@@ -438,43 +385,35 @@ <h3 id="methods">
438385
@Get(&#x27;/get-update/:project(sesame-orchestrator|sesame-daemon|sesame-app-manager)&#x27;)
439386
public async update(
440387
@Res() res: Response,
441-
@Param(&#x27;project&#x27;) project?: string,
388+
@Param(&#x27;project&#x27;) project?: ProjectsList,
442389
@Query(&#x27;current&#x27;) current?: string,
443390
): Promise&lt;Response&gt; {
444-
const validProjects &#x3D; [&#x27;sesame-orchestrator&#x27;, &#x27;sesame-daemon&#x27;, &#x27;sesame-app-manager&#x27;];
445-
if (!validProjects.includes(project)) {
446-
throw new BadRequestException(&#x60;Invalid project: ${project}&#x60;);
447-
}
448-
449-
let data &#x3D; &lt;GithubUpdate&gt;{};
450-
if (storage.has(project)) {
451-
this.logger.log(&#x60;Fetching ${project} tags from cache&#x60;);
452-
data &#x3D; storage.get(project) as GithubUpdate;
453-
} else {
454-
this.logger.log(&#x60;Fetching ${project} tags&#x60;);
455-
const update &#x3D; await fetch(&#x60;https://api.github.com/repos/Libertech-FR/${project}/releases/latest&#x60;, {
456-
signal: AbortSignal.timeout(1000),
457-
});
458-
data &#x3D; await update.json();
459-
console.log(&#x27;update&#x27;, data)
460-
storage.set(project, data);
461-
}
462-
// if (!Array.isArray(data)) {
463-
// throw new BadRequestException(&#x60;Invalid data from Github &lt;${JSON.stringify(data)}&gt;&#x60;);
464-
// }
465-
const lastVersion &#x3D; data.tag_name.replace(/^v/, &#x27;&#x27;);
466391
const pkgInfo &#x3D; this.appService.getInfo();
467392
const currentVersion &#x3D; current || pkgInfo.version;
393+
const [lastMajor, lastMinor, lastPatch] &#x3D; currentVersion.split(&#x27;.&#x27;).map(Number);
468394

395+
/**
396+
* If the project is not the same as the package name or if a current version is provided,
397+
* we validate the current version format.
398+
* If the current version is not in the format X.Y.Z, we throw a BadRequestException.
399+
*
400+
* This ensures that the current version is always in a valid format before proceeding with the comparison.
401+
*/
469402
if (project !&#x3D;&#x3D; pkgInfo.name || current) {
470403
if (!/[0-9]+\.[0-9]+\.[0-9]+/.test(current)) {
471404
throw new BadRequestException(&#x27;Invalid version for current parameter&#x27;);
472405
}
473406
}
474407

475-
const [currentMajor, currentMinor, currentPatch] &#x3D; lastVersion.split(&#x27;.&#x27;).map(Number);
476-
const [lastMajor, lastMinor, lastPatch] &#x3D; currentVersion.split(&#x27;.&#x27;).map(Number);
477-
const updateAvailable &#x3D; currentMajor &gt; lastMajor || currentMinor &gt; lastMinor || currentPatch &gt; lastPatch;
408+
let lastVersion &#x3D; &#x27;0.0.0&#x27;;
409+
let updateAvailable &#x3D; false;
410+
let data &#x3D; await this.appService.getProjectUpdate(project);
411+
412+
if (data) {
413+
lastVersion &#x3D; data.tag_name.replace(/^v/, &#x27;&#x27;);
414+
const [currentMajor, currentMinor, currentPatch] &#x3D; lastVersion.split(&#x27;.&#x27;).map(Number);
415+
updateAvailable &#x3D; currentMajor &gt; lastMajor || currentMinor &gt; lastMinor || currentPatch &gt; lastPatch;
416+
}
478417

479418
return res.json({
480419
data: {

controllers/IdentitiesPhotoController.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ <h3 id="methods">
339339
<tr>
340340
<td class="col-md-4">
341341
<span class="modifier-icon icon ion-ios-reset"></span>
342-
<code>upsertInetOrgPersonJpegPhoto(res: Response, body: <a href="../s/storage.html" target="_self">Partial&lt;FilestorageCreateDto&gt;</a>, searchFilterSchema: FilterSchema, file?: Express.Multer.File)</code>
342+
<code>upsertInetOrgPersonJpegPhoto(res: Response, body: Partial<FilestorageCreateDto>, searchFilterSchema: FilterSchema, file?: Express.Multer.File)</code>
343343
</td>
344344
</tr>
345345

@@ -389,7 +389,7 @@ <h3 id="methods">
389389
<tr>
390390
<td>body</td>
391391
<td>
392-
<code><a href="../miscellaneous/variables.html#storage" target="_self" >Partial&lt;FilestorageCreateDto&gt;</a></code>
392+
<code>Partial&lt;FilestorageCreateDto&gt;</code>
393393
</td>
394394

395395
<td>

controllers/IdentitiesUpsertController.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ <h3 id="methods">
351351
<tr>
352352
<td class="col-md-4">
353353
<span class="modifier-icon icon ion-ios-reset"></span>
354-
<code>upsertInetOrgPersonJpegPhoto(res: Response, body: <a href="../s/storage.html" target="_self">Partial&lt;FilestorageCreateDto&gt;</a>, searchFilterSchema: FilterSchema, file?: Express.Multer.File)</code>
354+
<code>upsertInetOrgPersonJpegPhoto(res: Response, body: Partial<FilestorageCreateDto>, searchFilterSchema: FilterSchema, file?: Express.Multer.File)</code>
355355
</td>
356356
</tr>
357357

@@ -401,7 +401,7 @@ <h3 id="methods">
401401
<tr>
402402
<td>body</td>
403403
<td>
404-
<code><a href="../miscellaneous/variables.html#storage" target="_self" >Partial&lt;FilestorageCreateDto&gt;</a></code>
404+
<code>Partial&lt;FilestorageCreateDto&gt;</code>
405405
</td>
406406

407407
<td>

coverage.html

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1198,10 +1198,22 @@
11981198
<span class="coverage-count">(0/3)</span>
11991199
</td>
12001200
</tr>
1201+
<tr class="medium">
1202+
<td>
1203+
<!-- miscellaneous -->
1204+
<a href="./injectables/AppService.html">src/app.service.ts</a>
1205+
</td>
1206+
<td>injectable</td>
1207+
<td>AppService</td>
1208+
<td align="right" data-sort="33">
1209+
<span class="coverage-percent">33 %</span>
1210+
<span class="coverage-count">(5/15)</span>
1211+
</td>
1212+
</tr>
12011213
<tr class="low">
12021214
<td>
12031215
<!-- miscellaneous -->
1204-
<a href="./interfaces/GithubAsset.html">src/app.controller.ts</a>
1216+
<a href="./interfaces/GithubAsset.html">src/app.service.ts</a>
12051217
</td>
12061218
<td>interface</td>
12071219
<td>GithubAsset</td>
@@ -1213,7 +1225,7 @@
12131225
<tr class="low">
12141226
<td>
12151227
<!-- miscellaneous -->
1216-
<a href="./interfaces/GithubAuthor.html">src/app.controller.ts</a>
1228+
<a href="./interfaces/GithubAuthor.html">src/app.service.ts</a>
12171229
</td>
12181230
<td>interface</td>
12191231
<td>GithubAuthor</td>
@@ -1225,7 +1237,7 @@
12251237
<tr class="low">
12261238
<td>
12271239
<!-- miscellaneous -->
1228-
<a href="./interfaces/GithubUpdate.html">src/app.controller.ts</a>
1240+
<a href="./interfaces/GithubUpdate.html">src/app.service.ts</a>
12291241
</td>
12301242
<td>interface</td>
12311243
<td>GithubUpdate</td>
@@ -1234,30 +1246,6 @@
12341246
<span class="coverage-count">(0/19)</span>
12351247
</td>
12361248
</tr>
1237-
<tr class="low">
1238-
<td>
1239-
<!-- miscellaneous -->
1240-
<a href="./miscellaneous/variables.html#storage">src/app.controller.ts</a>
1241-
</td>
1242-
<td>variable</td>
1243-
<td>storage</td>
1244-
<td align="right" data-sort="0">
1245-
<span class="coverage-percent">0 %</span>
1246-
<span class="coverage-count">(0/1)</span>
1247-
</td>
1248-
</tr>
1249-
<tr class="low">
1250-
<td>
1251-
<!-- miscellaneous -->
1252-
<a href="./injectables/AppService.html">src/app.service.ts</a>
1253-
</td>
1254-
<td>injectable</td>
1255-
<td>AppService</td>
1256-
<td align="right" data-sort="0">
1257-
<span class="coverage-percent">0 %</span>
1258-
<span class="coverage-count">(0/10)</span>
1259-
</td>
1260-
</tr>
12611249
<tr class="low">
12621250
<td>
12631251
<!-- miscellaneous -->
@@ -1387,7 +1375,7 @@
13871375
<td>ConfigInstance</td>
13881376
<td align="right" data-sort="0">
13891377
<span class="coverage-percent">0 %</span>
1390-
<span class="coverage-count">(0/12)</span>
1378+
<span class="coverage-count">(0/13)</span>
13911379
</td>
13921380
</tr>
13931381
<tr class="low">

dependencies.html

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@
104104
<b>@nestjs-modules/ioredis</b> : ^2.0.2</li>
105105
<li>
106106
<b>@nestjs-modules/mailer</b> : ^2.0.2</li>
107+
<li>
108+
<b>@nestjs/axios</b> : ^4.0.1</li>
107109
<li>
108110
<b>@nestjs/bullmq</b> : ^10.1.1</li>
109111
<li>
@@ -122,6 +124,8 @@
122124
<b>@nestjs/passport</b> : ^10.0.3</li>
123125
<li>
124126
<b>@nestjs/platform-express</b> : ^10.4.8</li>
127+
<li>
128+
<b>@nestjs/schedule</b> : ^6.0.0</li>
125129
<li>
126130
<b>@nestjs/swagger</b> : ^8.0.7</li>
127131
<li>
@@ -142,6 +146,8 @@
142146
<b>argon2</b> : ^0.41.1</li>
143147
<li>
144148
<b>awesome-phonenumber</b> : ^6.10.0</li>
149+
<li>
150+
<b>axios</b> : ^1.10.0</li>
145151
<li>
146152
<b>bullmq</b> : ^5.8.2</li>
147153
<li>

0 commit comments

Comments
 (0)