forked from imgbot/Imgbot
-
Notifications
You must be signed in to change notification settings - Fork 1
/
RouterFunction.cs
49 lines (45 loc) · 1.71 KB
/
RouterFunction.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
using System;
using Common.Messages;
using Common.TableModels;
using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;
namespace RouterFunction
{
public static class RouterFunction
{
[FunctionName("RouterFunction")]
public static void Run(
[QueueTrigger("routermessage")]RouterMessage routerMessage,
[Table("installation", "{InstallationId}", "{RepoName}")] Installation installation,
[Table("installation")] ICollector<Installation> installations,
[Queue("compressimagesmessage")] ICollector<CompressImagesMessage> compressImagesMessages,
ILogger logger)
{
if (installation == null)
{
installations.Add(new Installation(routerMessage.InstallationId, routerMessage.RepoName)
{
CloneUrl = routerMessage.CloneUrl,
Owner = routerMessage.Owner,
LastChecked = DateTime.UtcNow
});
}
else
{
installation.LastChecked = DateTime.UtcNow;
}
/*
* TODO: add logic for routing
* https://github.com/dabutvin/ImgBot/issues/98
*/
compressImagesMessages.Add(new CompressImagesMessage
{
CloneUrl = routerMessage.CloneUrl,
InstallationId = routerMessage.InstallationId,
Owner = routerMessage.Owner,
RepoName = routerMessage.RepoName,
});
logger.LogInformation("RouterFunction: Added CompressImagesMessage for {Owner}/{RepoName}", routerMessage.Owner, routerMessage.RepoName);
}
}
}