-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathCloudSessionProfileFunction.cs
More file actions
86 lines (67 loc) · 3.6 KB
/
CloudSessionProfileFunction.cs
File metadata and controls
86 lines (67 loc) · 3.6 KB
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
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
using System.Net;
using ByteSync.Common.Business.Lobbies.Connections;
using ByteSync.Common.Business.Profiles;
using ByteSync.Functions.Helpers.Misc;
using ByteSync.ServerCommon.Interfaces.Services;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Azure.Functions.Worker.Http;
namespace ByteSync.Functions.Http;
public class CloudSessionProfileFunction
{
private readonly ICloudSessionProfileService _cloudSessionProfileService;
public CloudSessionProfileFunction(ICloudSessionProfileService cloudSessionProfileService)
{
_cloudSessionProfileService = cloudSessionProfileService;
}
[Function("CreateCloudSessionProfileFunction")]
public async Task<HttpResponseData> CreateCloudSessionProfile(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "cloudSessionProfile")]
HttpRequestData req,
FunctionContext executionContext)
{
var client = FunctionHelper.GetClientFromContext(executionContext);
var sessionId = await FunctionHelper.DeserializeRequestBody<string>(req);
var result = await _cloudSessionProfileService.CreateCloudSessionProfile(sessionId, client);
var response = req.CreateResponse();
await response.WriteAsJsonAsync(result);
return response;
}
[Function("GetCloudSessionProfileDataFunction")]
public async Task<HttpResponseData> GetCloudSessionProfileData(
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "cloudSessionProfile/{cloudSessionProfileId}/get")]
HttpRequestData req,
FunctionContext executionContext,
string cloudSessionProfileId)
{
var client = FunctionHelper.GetClientFromContext(executionContext);
var parameters = await FunctionHelper.DeserializeRequestBody<GetCloudSessionProfileDataParameters>(req);
var result = await _cloudSessionProfileService.GetCloudSessionProfileData(parameters, client);
var response = req.CreateResponse();
await response.WriteAsJsonAsync(result);
return response;
}
[Function("GetProfileDetailsPasswordFunction")]
public async Task<HttpResponseData> GetProfileDetailsPassword([HttpTrigger(
AuthorizationLevel.Anonymous, "post", Route = "cloudSessionProfile/{cloudSessionProfileId}/getProfileDetailsPassword")] HttpRequestData req,
FunctionContext executionContext, string cloudSessionProfileId)
{
var client = FunctionHelper.GetClientFromContext(executionContext);
var parameters = await FunctionHelper.DeserializeRequestBody<GetProfileDetailsPasswordParameters>(req);
var result = await _cloudSessionProfileService.GetProfileDetailsPassword(parameters, client);
var response = req.CreateResponse();
await response.WriteAsJsonAsync(result);
return response;
}
[Function("DeleteCloudSessionProfileFunction")]
public async Task<HttpResponseData> DeleteCloudSessionProfile([HttpTrigger(
AuthorizationLevel.Anonymous, "post", Route = "cloudSessionProfile/{cloudSessionProfileId}/delete")] HttpRequestData req,
FunctionContext executionContext, string cloudSessionProfileId)
{
var client = FunctionHelper.GetClientFromContext(executionContext);
var parameters = await FunctionHelper.DeserializeRequestBody<DeleteCloudSessionProfileParameters>(req);
var result = await _cloudSessionProfileService.DeleteCloudSessionProfile(parameters, client);
var response = req.CreateResponse();
await response.WriteAsJsonAsync(result);
return response;
}
}