/// <summary>
        /// Resolve a hubspot API path based off the entity and operation that is about to happen
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="action"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentOutOfRangeException"></exception>
        public string PathResolver(ICompanyHubSpotEntity entity, HubSpotAction action)
        {
            switch (action)
            {
            case HubSpotAction.Create:
                return($"{entity.RouteBasePath}/companies");

            case HubSpotAction.Get:
                return($"{entity.RouteBasePath}/companies/:companyId:");

            case HubSpotAction.GetByEmail:
                return($"{entity.RouteBasePath}/domains/:domain:/companies");

            case HubSpotAction.List:
                return($"{entity.RouteBasePath}/companies/paged");

            case HubSpotAction.Update:
                return($"{entity.RouteBasePath}/companies/:companyId:");

            case HubSpotAction.Delete:
                return($"{entity.RouteBasePath}/companies/:companyId:");

            default:
                throw new ArgumentOutOfRangeException(nameof(action), action, null);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Resolve a hubspot API path based off the entity and operation that is about to happen
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="action"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentOutOfRangeException"></exception>
        internal string PathResolver(ILineItemHubSpotEntity entity, HubSpotAction action)
        {
            switch (action)
            {
            case HubSpotAction.Create:
                return($"{entity.RouteBasePath}/line_items");

            case HubSpotAction.Get:
                return($"{entity.RouteBasePath}/line_items/:lineItemId:");

            case HubSpotAction.Update:
                return($"{entity.RouteBasePath}/line_items/:lineItemId:");

            case HubSpotAction.Delete:
                return($"{entity.RouteBasePath}/line_items/:lineItemId:");

            case HubSpotAction.List:
                return($"{entity.RouteBasePath}/line_items/paged");

            case HubSpotAction.CreateBatch:
                return($"{entity.RouteBasePath}/line_items/batch-create");

            case HubSpotAction.DeleteBatch:
                return($"{entity.RouteBasePath}/line_items/batch-delete");

            case HubSpotAction.UpdateBatch:
                return($"{entity.RouteBasePath}/line_items/batch-update");

            case HubSpotAction.ReadBatch:
                return($"{entity.RouteBasePath}/line_items/batch-read");

            default:
                throw new ArgumentOutOfRangeException(nameof(action), action, null);
            }
        }
Beispiel #3
0
        /// <summary>
        /// Resolve a hubspot API path based off the entity and opreation that is about to happen
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="action"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentOutOfRangeException"></exception>
        public string PathResolver(IContactHubSpotEntity entity, HubSpotAction action)
        {
            switch (action)
            {
            case HubSpotAction.Create:
                return($"{entity.RouteBasePath}/contact");

            case HubSpotAction.Get:
                return($"{entity.RouteBasePath}/contact/vid/:contactId:/profile");

            case HubSpotAction.GetByEmail:
                return($"{entity.RouteBasePath}/contact/email/:contactEmail:/profile");

            case HubSpotAction.List:
                return($"{entity.RouteBasePath}/lists/all/contacts/all");

            case HubSpotAction.Update:
                return($"{entity.RouteBasePath}/contact/vid/:contactId:/profile");

            case HubSpotAction.Delete:
                return($"{entity.RouteBasePath}/contact/vid/:contactId:");

            default:
                throw new ArgumentOutOfRangeException(nameof(action), action, null);
            }
        }
Beispiel #4
0
        /// <summary>
        /// Resolve a hubspot API path based off the entity and operation that is about to happen
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="action"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentOutOfRangeException"></exception>
        public string PathResolver(ICompanyPropertyHubSpotEntity entity, HubSpotAction action)
        {
            switch (action)
            {
            case HubSpotAction.List:
                return($"{entity.RouteBasePath}/companies/properties");

            default:
                throw new ArgumentOutOfRangeException(nameof(action), action, null);
            }
        }
Beispiel #5
0
        /// <summary>
        /// Resolve a hubspot API path based off the entity and operation that is about to happen
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="action"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentOutOfRangeException"></exception>
        public string PathResolver(IOwnerHubSpotEntity entity, HubSpotAction action)
        {
            switch (action)
            {
            case HubSpotAction.List:
                return($"{entity.RouteBasePath}/owners");

            case HubSpotAction.Get:
                return($"{entity.RouteBasePath}/owners/:ownerId:");

            default:
                throw new ArgumentOutOfRangeException(nameof(action), action, null);
            }
        }
Beispiel #6
0
        /// <summary>
        /// Resolve a hubspot API path based off the entity and operation that is about to happen
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="action"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentOutOfRangeException"></exception>
        public string PathResolver(Contact.Interfaces.IContactHubSpotEntity entity, HubSpotAction action)
        {
            switch (action)
            {
            case HubSpotAction.Get:
                return($"{entity.RouteBasePath}/lists/:listId:/contacts/all");

            case HubSpotAction.CreateBatch:
                return($"{entity.RouteBasePath}/lists/:listId:/add");

            case HubSpotAction.DeleteBatch:
                return($"{entity.RouteBasePath}/lists/:listId:/remove");

            default:
                throw new ArgumentOutOfRangeException(nameof(action), action, null);
            }
        }
Beispiel #7
0
        /// <summary>
        /// Resolve a hubspot API path based off the entity and operation that is about to happen
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="action"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentOutOfRangeException"></exception>
        public string PathResolver(IDealHubSpotEntity entity, HubSpotAction action)
        {
            switch (action)
            {
            case HubSpotAction.Create:
                return($"{entity.RouteBasePath}/deal");

            case HubSpotAction.Get:
                return($"{entity.RouteBasePath}/deal/:dealId:");

            case HubSpotAction.Update:
                return($"{entity.RouteBasePath}/deal/:dealId:");

            case HubSpotAction.Delete:
                return($"{entity.RouteBasePath}/deal/:dealId:");

            default:
                throw new ArgumentOutOfRangeException(nameof(action), action, null);
            }
        }
        /// <summary>
        /// Resolve a hubspot API path based off the entity and opreation that is about to happen
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="action"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentOutOfRangeException"></exception>
        public string PathResolver(IOwnerHubSpotEntity entity, HubSpotAction action)
        {
            switch (action)
            {
            //case HubSpotAction.Create:
            //    return $"{entity.RouteBasePath}/engagements";
            //case HubSpotAction.Get:
            //    return $"{entity.RouteBasePath}/contact/vid/:contactId:/profile";
            //case HubSpotAction.GetByEmail:
            //    return $"{entity.RouteBasePath}/contact/email/:contactEmail:/profile";
            case HubSpotAction.List:
                return($"{entity.RouteBasePath}/owners");

            //case HubSpotAction.Update:
            //    return $"{entity.RouteBasePath}/contact/vid/:contactId:/profile";
            //case HubSpotAction.Delete:
            //    return $"{entity.RouteBasePath}/contact/vid/:contactId:";
            default:
                throw new ArgumentOutOfRangeException(nameof(action), action, null);
            }
        }
Beispiel #9
0
        /// <summary>
        /// Resolve a hubspot API path based off the entity and opreation that is about to happen
        /// </summary>
        /// <param name="entity"></param>
        /// <param name="action"></param>
        /// <returns></returns>
        /// <exception cref="ArgumentOutOfRangeException"></exception>
        public string PathResolver(IAssociationHubSpotEntity entity, HubSpotAction action)
        {
            switch (action)
            {
            case HubSpotAction.Create:
                return($"{entity.RouteBasePath}/associations");

            case HubSpotAction.CreateBatch:
                return($"{entity.RouteBasePath}/associations/create-batch");

            case HubSpotAction.List:
                return($"{entity.RouteBasePath}/associations/:fromObjectId:/HUBSPOT_DEFINED/:definitionId:");

            case HubSpotAction.Delete:
                return($"{entity.RouteBasePath}/associations/delete");

            case HubSpotAction.DeleteBatch:
                return($"{entity.RouteBasePath}/associations/delete-batch");

            default:
                throw new ArgumentOutOfRangeException(nameof(action), action, null);
            }
        }
Beispiel #10
0
        public void CompanyClient_path_resolver_works(HubSpotAction action, string expetedPath)
        {
            var resvoledPath = _client.PathResolver(new CompanyHubSpotEntity(), action);

            Assert.Equal(expetedPath, resvoledPath);
        }
        public void LineItemClient_path_resolver_works(HubSpotAction action, string expectedPath)
        {
            var resvoledPath = _client.PathResolver(new LineItemHubSpotEntity(), action);

            Assert.Equal(expectedPath, resvoledPath);
        }