public override async Task <TReturnType> InvokeAsyncGeneric <TReturnType>(MethodInfo method, object[] args)
        {
            var serializedRequest = SerializeRequest(method, args);
            var lambdaRequest     = new LambdaRequest(_serviceMap.GetKey <TContract>(), serializedRequest);

            var serializedResponse = await _lambdaService.ExecuteRequest(lambdaRequest);

            var responseBytes = Convert.FromBase64String(serializedResponse);

            //This would happen at the client
            var deserializedObject = _serializer.ResponseSerializer.DeserializeResponse <TReturnType>(method, responseBytes);

            return(deserializedObject);
        }
Exemplo n.º 2
0
        /// <summary>
        /// A simple function that takes a string and does a ToUpper
        /// </summary>
        /// <param name="input"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public dynamic FunctionHandler(LambdaRequest <MessageRequest> request, ILambdaContext context)
        {
            if (request.headers.ContainsKey("Authorization"))
            {
                if (request.headers["Authorization"] != Environment.GetEnvironmentVariable("AUTH_KEY"))
                {
                    throw new UnauthorizedAccessException();
                }
            }
            else
            {
                throw new UnauthorizedAccessException();
            }

            #region SNS
            //try
            //{


            //    IFuncMessageSender funcMessageService = (IFuncMessageSender)Intgr.DI.Injection.DIServiceProvider.GetService(typeof(IFuncMessageSender));
            //    string messageId = funcMessageService.SendMessage(request.body);
            //    return LambdaResponse.GetSuccessResponse(messageId);
            //}
            //catch (Exception e)
            //{
            //    return LambdaResponse.GetFailResponse(e);
            //}
            #endregion SNS

            #region PinPoint
            try
            {
                IFuncPinPointSender funcPinPointSender = (IFuncPinPointSender)Intgr.DI.Injection.DIServiceProvider.GetService(typeof(IFuncPinPointSender));
                string responseId = funcPinPointSender.SendSMSMessage(request.body);
                return(LambdaResponse.GetSuccessResponse(responseId));
            }
            catch (Exception e) {
                return(LambdaResponse.GetFailResponse(e));
            }
            #endregion PinPoint
        }
        /// <summary>
        /// A simple function that takes a string and does a ToUpper
        /// </summary>
        /// <param name="input"></param>
        /// <param name="context"></param>
        /// <returns></returns>
        public object FunctionHandler(LambdaRequest <Message> MessageInput, ILambdaContext context)
        {
            string AuthorizationHeader = MessageInput.headers["Authorization"];

            if (string.IsNullOrEmpty(AuthorizationHeader))
            {
                throw new Exception("Unauthorized");
            }

            IServiceProvider          sp          = DI.ServiceProvider;
            IJwTokenReader            tokenReader = sp.GetService <IJwTokenReader>();
            IBaseRepository <Message> messageRepo = sp.GetService <IBaseRepository <Message> >();

            ReadOnlyCollection <Claim> claims = tokenReader.ReadToken(AuthorizationHeader);
            Message newMessage = messageRepo.Add(MessageInput.body);


            return(new {
                ClientId = claims.GetClaimValue(ClaimList.GallupClientId),
                MessageId = newMessage.Id
            });
        }
Exemplo n.º 4
0
        public async Task <APIGatewayProxyResponse> RegisterUser(LambdaRequest request)
        {
            try
            {
                var userInfo = JsonConvert.DeserializeObject <RegisterTypes>(request.body);
                await insertData(userInfo.name, userInfo.phone, userInfo.address);

                return(new APIGatewayProxyResponse
                {
                    StatusCode = 200,
                    Body = "Thank you for registering",
                    Headers = new Dictionary <string, string>
                    {
                        { "Content-Type", "application/json" },
                        { "Access-Control-Allow-Origin", "*" },
                        { "Access-Control-Allow-Methods", "OPTIONS,POST" }
                    }
                });
            } catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 5
0
 /// <summary>
 /// A simple function that takes a string and does a ToUpper
 /// </summary>
 /// <param name="input"></param>
 /// <param name="context"></param>
 /// <returns></returns>
 public async Task <string> FunctionHandler(LambdaRequest input, ILambdaContext context)
 {
     return(await _service.ExecuteRequest(input));
 }
Exemplo n.º 6
0
 /// <inheritdoc/>
 public ClientResponse <LambdaResponse> CreateLambda(Guid?lambdaId, LambdaRequest request)
 {
     return(client.CreateLambdaAsync(lambdaId, request).GetAwaiter().GetResult());
 }