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); }
/// <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 }); }
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; } }
/// <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)); }
/// <inheritdoc/> public ClientResponse <LambdaResponse> CreateLambda(Guid?lambdaId, LambdaRequest request) { return(client.CreateLambdaAsync(lambdaId, request).GetAwaiter().GetResult()); }