/** * Set user address. */ private async Task <APIGatewayProxyResponse> SetUserAddress(IDataStores dataStores, IDictionary <string, string> requestHeaders, JObject requestBody) { Debug.Untested(); Debug.AssertValid(dataStores); Debug.AssertValid(requestHeaders); Debug.AssertValidOrNull(requestBody); try { // Log call LoggingHelper.LogMessage($"UserIdentityService::SetUserAddress()"); // Get the NoSQL DB client AmazonDynamoDBClient dbClient = (AmazonDynamoDBClient)dataStores.GetNoSQLDataStore().GetDBClient(); Debug.AssertValid(dbClient); // Check inputs SetUserAddressRequest setUserAddressRequest = UserIdentityService_SetUserAddress_LogicLayer.CheckValidSetUserAddressRequest(requestBody); Debug.AssertValid(setUserAddressRequest); // Check authenticated endpoint security string loggedInUserId = await APIHelper.CheckLoggedIn(dbClient, requestHeaders); Debug.AssertID(loggedInUserId); // Perform logic await UserIdentityService_SetUserAddress_LogicLayer.SetUserAddress(dbClient, loggedInUserId, setUserAddressRequest); // Respond return(new APIGatewayProxyResponse { StatusCode = APIHelper.STATUS_CODE_NO_CONTENT }); } catch (Exception exception) { Debug.Tested(); return(APIHelper.ResponseFromException(exception)); } }
/** * Set user address. */ public static async Task SetUserAddress(AmazonDynamoDBClient dbClient, string loggedInUserId, SetUserAddressRequest setUserAddressRequest) { Debug.Tested(); Debug.AssertValid(dbClient); Debug.AssertID(loggedInUserId); Debug.AssertValid(setUserAddressRequest); Debug.AssertString(setUserAddressRequest.address1); Debug.AssertString(setUserAddressRequest.country); Debug.AssertString(setUserAddressRequest.postalCode); // Load the user User user = await IdentityServiceLogicLayer.FindUserByID(dbClient, loggedInUserId); Debug.AssertValid(user); // Make changes (if necessary) if ((user.Address1 != setUserAddressRequest.address1) || (user.Address2 != setUserAddressRequest.address2) || (user.Address3 != setUserAddressRequest.address3) || (user.Address4 != setUserAddressRequest.address4) || (user.City != setUserAddressRequest.city) || (user.Region != setUserAddressRequest.region) || (user.Country != setUserAddressRequest.country) || (user.PostalCode != setUserAddressRequest.postalCode)) { user.Address1 = setUserAddressRequest.address1; user.Address2 = setUserAddressRequest.address2; user.Address3 = setUserAddressRequest.address3; user.Address4 = setUserAddressRequest.address4; user.City = setUserAddressRequest.city; user.Region = setUserAddressRequest.region; user.Country = setUserAddressRequest.country; user.PostalCode = setUserAddressRequest.postalCode; // Save the user await IdentityServiceDataLayer.SaveUser(dbClient, user); } }