Example #1
0
        public static async Task <IActionResult> Run([HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequest req,
                                                     TraceWriter log)
        {
            log.Info("C# HTTP trigger function processed a request.");

            string  requestBody    = new StreamReader(req.Body).ReadToEnd();
            dynamic data           = JsonConvert.DeserializeObject(requestBody);
            var     textToModerate = (string)data?.textToModerate;

            var moderationHelper    = new ModerationHelper(Client, "<your content moderation api key>", "<moderation service region>");
            ModerationResult result = await moderationHelper.ModerateText(textToModerate);

            return(data != null
                ? (ActionResult) new OkObjectResult(result.ToString())
                : new BadRequestObjectResult("Please pass a string to evaluate"));
        }
Example #2
0
        public async Task UpdateAdvertisementModerationStatusAsync(string objectId, string versionId, ModerationResult moderationResult)
        {
            var methodUri = new Uri(_amUri, $"{objectId}/version/{versionId}/moderation");

            using (var content = new StringContent(JsonConvert.SerializeObject(moderationResult, SerializerSettings.Default), Encoding.UTF8, "application/json"))
            {
                using (var req = new HttpRequestMessage(HttpMethod.Put, methodUri))
                {
                    req.Content = content;
                    var server         = string.Empty;
                    var requestId      = string.Empty;
                    var stringResponse = string.Empty;
                    try
                    {
                        using (var response = await _authorizedHttpClient.SendAsync(req))
                        {
                            (stringResponse, server, requestId) = await HandleResponse(response);

                            response.EnsureSuccessStatusCode();
                            _logger.LogInformation("Object {objectId} with version {versionId} has been updated with moderation status {status}", objectId, versionId, moderationResult.Status);
                        }
                    }
                    catch (HttpRequestException ex)
                    {
                        _logger.LogError(new EventId(),
                                         ex,
                                         "Request {requestId} to server {server} error while updating object {objectId} moderation status {status} with response: {response}",
                                         requestId,
                                         server,
                                         objectId,
                                         moderationResult.Status,
                                         stringResponse);
                        throw;
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError(new EventId(), ex, "Error while updating object {objectId} moderation status {status}", objectId, moderationResult.Status);
                        throw;
                    }
                }
            }
        }
Example #3
0
        public async Task UpdateAdvertisementModerationStatusAsync(long id, string versionId, ModerationResult moderationResult)
        {
            var methodUri = new Uri(_amUri, $"{id}/version/{versionId}/moderation");

            using (var content = new StringContent(JsonConvert.SerializeObject(moderationResult, ApiSerializerSettings.Default), Encoding.UTF8, ContentType.Json))
            {
                using (var req = new HttpRequestMessage(HttpMethod.Put, methodUri))
                {
                    req.Content = content;
                    var server         = string.Empty;
                    var requestId      = string.Empty;
                    var stringResponse = string.Empty;
                    try
                    {
                        using (var response = await _authorizedHttpClient.SendAsync(req))
                        {
                            (stringResponse, server, requestId) = await HandleResponse(response);

                            response.EnsureSuccessStatusCode();
                            _logger.LogInformation(
                                "Advertisement {id} version {versionId} has been moderated with resolution {resolution}",
                                id,
                                versionId,
                                moderationResult.Resolution);
                        }
                    }
                    catch (HttpRequestException ex)
                    {
                        _logger.LogError(
                            ex,
                            "Request {requestId} to server {server} error while moderate advertisement {id} version {versionId} with resolution {resolution}; response: {response}",
                            requestId,
                            server,
                            id,
                            versionId,
                            moderationResult.Resolution,
                            stringResponse);
                        throw;
                    }
                    catch (Exception ex)
                    {
                        _logger.LogError(
                            ex,
                            "Error while moderate advertisement {id} version {versionId} with resolution {resolution}",
                            id,
                            versionId,
                            moderationResult.Resolution);
                        throw;
                    }
                }
            }
        }