diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php --- a/src/__phutil_library_map__.php +++ b/src/__phutil_library_map__.php @@ -4484,6 +4484,7 @@ 'PhortuneAccountBillingController' => 'applications/phortune/controller/account/PhortuneAccountBillingController.php', 'PhortuneAccountChargeListController' => 'applications/phortune/controller/account/PhortuneAccountChargeListController.php', 'PhortuneAccountController' => 'applications/phortune/controller/account/PhortuneAccountController.php', + 'PhortuneAccountEditConduitAPIMethod' => 'applications/phortune/conduit/PhortuneAccountEditConduitAPIMethod.php', 'PhortuneAccountEditController' => 'applications/phortune/controller/account/PhortuneAccountEditController.php', 'PhortuneAccountEditEngine' => 'applications/phortune/editor/PhortuneAccountEditEngine.php', 'PhortuneAccountEditor' => 'applications/phortune/editor/PhortuneAccountEditor.php', @@ -4495,6 +4496,7 @@ 'PhortuneAccountProfileController' => 'applications/phortune/controller/account/PhortuneAccountProfileController.php', 'PhortuneAccountQuery' => 'applications/phortune/query/PhortuneAccountQuery.php', 'PhortuneAccountSubscriptionController' => 'applications/phortune/controller/account/PhortuneAccountSubscriptionController.php', + 'PhortuneAccountTestDataGenerator' => 'applications/phortune/lipsum/PhortuneAccountTestDataGenerator.php', 'PhortuneAccountTransaction' => 'applications/phortune/storage/PhortuneAccountTransaction.php', 'PhortuneAccountTransactionQuery' => 'applications/phortune/query/PhortuneAccountTransactionQuery.php', 'PhortuneAccountTransactionType' => 'applications/phortune/xaction/PhortuneAccountTransactionType.php', @@ -4540,6 +4542,7 @@ 'PhortuneMerchantContactInfoTransaction' => 'applications/phortune/xaction/PhortuneMerchantContactInfoTransaction.php', 'PhortuneMerchantController' => 'applications/phortune/controller/merchant/PhortuneMerchantController.php', 'PhortuneMerchantDescriptionTransaction' => 'applications/phortune/xaction/PhortuneMerchantDescriptionTransaction.php', + 'PhortuneMerchantEditConduitAPIMethod' => 'applications/phortune/conduit/PhortuneMerchantEditConduitAPIMethod.php', 'PhortuneMerchantEditController' => 'applications/phortune/controller/merchant/PhortuneMerchantEditController.php', 'PhortuneMerchantEditEngine' => 'applications/phortune/editor/PhortuneMerchantEditEngine.php', 'PhortuneMerchantEditor' => 'applications/phortune/editor/PhortuneMerchantEditor.php', @@ -4556,11 +4559,13 @@ 'PhortuneMerchantProfileController' => 'applications/phortune/controller/merchant/PhortuneMerchantProfileController.php', 'PhortuneMerchantQuery' => 'applications/phortune/query/PhortuneMerchantQuery.php', 'PhortuneMerchantSearchEngine' => 'applications/phortune/query/PhortuneMerchantSearchEngine.php', + 'PhortuneMerchantTestDataGenerator' => 'applications/phortune/lipsum/PhortuneMerchantTestDataGenerator.php', 'PhortuneMerchantTransaction' => 'applications/phortune/storage/PhortuneMerchantTransaction.php', 'PhortuneMerchantTransactionQuery' => 'applications/phortune/query/PhortuneMerchantTransactionQuery.php', 'PhortuneMerchantTransactionType' => 'applications/phortune/xaction/PhortuneMerchantTransactionType.php', 'PhortuneMerchantViewController' => 'applications/phortune/controller/merchant/PhortuneMerchantViewController.php', 'PhortuneMonthYearExpiryControl' => 'applications/phortune/control/PhortuneMonthYearExpiryControl.php', + 'PhortuneNameContextFreeGrammar' => 'applications/phortune/lipsum/PhortuneNameContextFreeGrammar.php', 'PhortuneOrderTableView' => 'applications/phortune/view/PhortuneOrderTableView.php', 'PhortunePayPalPaymentProvider' => 'applications/phortune/provider/PhortunePayPalPaymentProvider.php', 'PhortunePaymentMethod' => 'applications/phortune/storage/PhortunePaymentMethod.php', @@ -10128,6 +10133,7 @@ 'PhortuneAccountBillingController' => 'PhortuneAccountProfileController', 'PhortuneAccountChargeListController' => 'PhortuneController', 'PhortuneAccountController' => 'PhortuneController', + 'PhortuneAccountEditConduitAPIMethod' => 'PhabricatorEditEngineAPIMethod', 'PhortuneAccountEditController' => 'PhortuneController', 'PhortuneAccountEditEngine' => 'PhabricatorEditEngine', 'PhortuneAccountEditor' => 'PhabricatorApplicationTransactionEditor', @@ -10139,6 +10145,7 @@ 'PhortuneAccountProfileController' => 'PhortuneAccountController', 'PhortuneAccountQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'PhortuneAccountSubscriptionController' => 'PhortuneAccountProfileController', + 'PhortuneAccountTestDataGenerator' => 'PhabricatorTestDataGenerator', 'PhortuneAccountTransaction' => 'PhabricatorModularTransaction', 'PhortuneAccountTransactionQuery' => 'PhabricatorApplicationTransactionQuery', 'PhortuneAccountTransactionType' => 'PhabricatorModularTransactionType', @@ -10195,6 +10202,7 @@ 'PhortuneMerchantContactInfoTransaction' => 'PhortuneMerchantTransactionType', 'PhortuneMerchantController' => 'PhortuneController', 'PhortuneMerchantDescriptionTransaction' => 'PhortuneMerchantTransactionType', + 'PhortuneMerchantEditConduitAPIMethod' => 'PhabricatorEditEngineAPIMethod', 'PhortuneMerchantEditController' => 'PhortuneMerchantController', 'PhortuneMerchantEditEngine' => 'PhabricatorEditEngine', 'PhortuneMerchantEditor' => 'PhabricatorApplicationTransactionEditor', @@ -10211,11 +10219,13 @@ 'PhortuneMerchantProfileController' => 'PhortuneController', 'PhortuneMerchantQuery' => 'PhabricatorCursorPagedPolicyAwareQuery', 'PhortuneMerchantSearchEngine' => 'PhabricatorApplicationSearchEngine', + 'PhortuneMerchantTestDataGenerator' => 'PhabricatorTestDataGenerator', 'PhortuneMerchantTransaction' => 'PhabricatorModularTransaction', 'PhortuneMerchantTransactionQuery' => 'PhabricatorApplicationTransactionQuery', 'PhortuneMerchantTransactionType' => 'PhabricatorModularTransactionType', 'PhortuneMerchantViewController' => 'PhortuneMerchantProfileController', 'PhortuneMonthYearExpiryControl' => 'AphrontFormControl', + 'PhortuneNameContextFreeGrammar' => 'PhutilContextFreeGrammar', 'PhortuneOrderTableView' => 'AphrontView', 'PhortunePayPalPaymentProvider' => 'PhortunePaymentProvider', 'PhortunePaymentMethod' => array( diff --git a/src/applications/lipsum/generator/PhabricatorTestDataGenerator.php b/src/applications/lipsum/generator/PhabricatorTestDataGenerator.php --- a/src/applications/lipsum/generator/PhabricatorTestDataGenerator.php +++ b/src/applications/lipsum/generator/PhabricatorTestDataGenerator.php @@ -59,6 +59,24 @@ return $user; } + protected function loadRandomAdmin() { + $viewer = $this->getViewer(); + + $admins = id(new PhabricatorPeopleQuery()) + ->setViewer($viewer) + ->withIsAdmin(true) + ->needUserSettings(true) + ->execute(); + + if (!$admins) { + throw new Exception( + pht('Failed to load a random admin.')); + } + + // Not Random + return head($admins); + } + protected function getLipsumContentSource() { return PhabricatorContentSource::newForSource( PhabricatorLipsumContentSource::SOURCECONST); diff --git a/src/applications/phortune/conduit/PhortuneAccountEditConduitAPIMethod.php b/src/applications/phortune/conduit/PhortuneAccountEditConduitAPIMethod.php new file mode 100644 --- /dev/null +++ b/src/applications/phortune/conduit/PhortuneAccountEditConduitAPIMethod.php @@ -0,0 +1,19 @@ +loadRandomUser(); + $content_source = $this->getLipsumContentSource(); + + $accounts = id(new PhortuneAccountQuery()) + ->setViewer($user) + ->withMemberPHIDs(array($user->getPHID())) + ->execute(); + + if (!$accounts) { + $account = PhortuneAccount::createNewAccount($user, $content_source); + return $account->getPHID(); + + } + + // Any way to skip this? + return head($accounts); + } + +} diff --git a/src/applications/phortune/lipsum/PhortuneMerchantTestDataGenerator.php b/src/applications/phortune/lipsum/PhortuneMerchantTestDataGenerator.php new file mode 100644 --- /dev/null +++ b/src/applications/phortune/lipsum/PhortuneMerchantTestDataGenerator.php @@ -0,0 +1,59 @@ +loadRandomAdmin(); + $name = $this->newName(); + + $managers = array(); + $managers[] = $this->loadRandomUser(); + $managers[] = $this->loadRandomUser(); + $managers[] = $this->loadRandomUser(); + + $rando_phids = array(); + $rando_phids[] = $admin->getPHID(); + foreach ($managers as $actor) { + $rando_phids[] = $actor->getPHID(); + } + + $xactions = array(); + $xactions[] = array( + 'type' => 'name', + 'value' => $name, + ); + $xactions[] = array( + 'type' => 'members.set', + 'value' => $rando_phids, + ); + $xactions[] = array( + 'type' => 'description', + 'value' => 'Lorem Ipsum Dolor Solit.', + ); + + $params = array( + 'transactions' => $xactions, + ); + + $result = id(new ConduitCall('phortune.merchant.edit', $params)) + ->setUser($admin) + ->execute(); + + return $result['object']['phid']; + } + + protected function newName() { + $generator = new PhortuneNameContextFreeGrammar(); + $name = $generator->generate(); + return $name; + } + +} diff --git a/src/applications/phortune/lipsum/PhortuneNameContextFreeGrammar.php b/src/applications/phortune/lipsum/PhortuneNameContextFreeGrammar.php new file mode 100644 --- /dev/null +++ b/src/applications/phortune/lipsum/PhortuneNameContextFreeGrammar.php @@ -0,0 +1,63 @@ + array( + '[head]', + '[head] [tail]', + '[head] [tail]', + '[head] [tail]', + '[head] [tail] & Sons', + '[head] [tail], Inc', + '[head] [tail], Ltd', + '[head] [tail]', + '[head] [tail]', + '[head] [tail]', + '[head] [tail] Corp.', + '[head] [tail] & Co', + '[head] [tail], Inc.', + '[head] [tail], Ltd.', + ), + 'head' => array( + '0', + 'Acme', + 'DotCom', + 'Basic', + 'Default', + 'Example', + 'Wonka', + 'NaN', + 'Null', + 'Stark', + 'Gekko', + 'Wayne', + 'Sample', + 'Prototype', + 'Alpha', + 'Standard', + 'Simple', + 'Cyberdyne', + ), + 'tail' => array( + 'Incorporated', + 'Limited', + 'Industries', + 'Enterprises', + 'Group', + 'Company', + 'International', + 'Services', + 'Systems', + 'Solutions', + 'Partners', + 'Holdings', + 'Properties', + 'Direct', + 'Digital', + 'Brands', + ), + ); + } +}