123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using Azure.Cosmos;
- using Azure.Storage.Blobs.Models;
- using HTEXLib.COMM.Helpers;
- using Microsoft.Azure.Cosmos.Table;
- using Microsoft.Azure.Functions.Worker;
- using Microsoft.Azure.Functions.Worker.Http;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Net;
- using System.Reflection;
- using System.Text;
- using System.Text.Json;
- using System.Threading.Tasks;
- using TEAMModelOS.Filter;
- using TEAMModelOS.SDK;
- using TEAMModelOS.SDK.DI;
- using TEAMModelOS.SDK.Extension;
- using TEAMModelOS.SDK.Models;
- using TEAMModelOS.SDK.Models.Cosmos.Teacher;
- using TEAMModelOS.SDK.Models.Table;
- using static TEAMModelOS.SDK.Models.Teacher;
- namespace TEAMModelOS.FunctionV4.HttpTrigger
- {
- public class WebhookHttpTrigger
- {
- private readonly AzureCosmosFactory _azureCosmos;
- private readonly DingDing _dingDing;
- private readonly AzureStorageFactory _azureStorage;
- private readonly AzureRedisFactory _azureRedis;
- public WebhookHttpTrigger(AzureCosmosFactory azureCosmos, DingDing dingDing, AzureStorageFactory azureStorage , AzureRedisFactory azureRedis)
- {
- _azureCosmos = azureCosmos;
- _dingDing = dingDing;
- _azureStorage = azureStorage;
- _azureRedis = azureRedis;
- }
- [Function("group-change")]
- [ApiToken(Auth = "1302", Name = "课程详细信息", RWN = "N")]
- public async Task<HttpResponseData> NoticeGroupChange([HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "webhook/group-change")] HttpRequestData request) {
- var response = request.CreateResponse(HttpStatusCode.OK);
- (string school, GroupChange data) = await GetRequestData<GroupChange>(request);
- if (string.IsNullOrWhiteSpace(school)) {
-
- }
- return response;
- }
- public async Task<(string school, T data)> GetRequestData<T>(HttpRequestData request)
- {
- var response = request.CreateResponse(HttpStatusCode.OK);
- string data = await new StreamReader(request.Body).ReadToEndAsync();
- var json = JsonDocument.Parse(data).RootElement;
- string school = null;
- if (json.TryGetProperty("school", out JsonElement _school))
- {
- school = _school.GetString();
- }
- if (json.TryGetProperty("data", out JsonElement _data))
- {
- return (school, _data.ToObject<T>());
- }
- else { return (school,default(T)); }
- }
- }
-
- public class WebhookSchoolData {
- public string school { get; set; }
- public string data { get; set; }
- }
- }
|