Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


cogative last won the day on October 30 2016

cogative had the most liked content!

1 Follower

About cogative

  • Rank
    Advanced Member

Contact Methods

  • Website URL

Profile Information

  • Location

Recent Profile Visitors

476 profile views
  1. cogative

    Enverido - Simpler Licensing

    Hello all! After a period of testing, the Enverido BETA is now over! If you've already registered an Enverido account, you still have access to the the $10/month unlimited subscription plan, even if you haven't subscribed yet. If you haven't registered then all is not lost! As a thanks to the Blesta community for your great feedback and participation in the BETA, here's a coupon code for 25% off for the first 3 months of an Enverido subscription: "THANKSBLESTA". This coupon will expire after Christmas day 2016! We're also now looking for resellers to help get Enverido to as many customers as possible. We have a Blesta module ready to go that enables you to resell accounts through your existing Blesta installation. If you're interested in this, please drop me a PM! To summarise, there's now... Fully functioning Web UI to view and manage licences and products Fully functioning API to create/update/suspend/renew licences Blesta module which supports all of the API's licence functions PHP library which supports all of the API's functions Includes helper classes to simplify licence verification and activation API is fully documented Documentation available for helper classes of the PHP library PHP library code is documented with comments Reseller option available for those who would like to resell Enverido API endpoints are available to integrate this into any platform you currently use Blesta module available PHP library supports all reseller API endpoints Documentation on reseller API endpoints is available In the works... WHMCS module More detailed reporting and analytics (how many times a licence has been activated, where the activations occurred, etc) Full online documentation for the PHP library Self-hosted "Enterprise" edition Other features suggested by the Blesta community! Thanks again guys!
  2. cogative

    Enverido - Simpler Licensing

    My apologies - the updated pricing still includes the free plan. We've upped the number of free licences up to 10, as well.
  3. cogative

    Enverido - Simpler Licensing

    There's no limit to the number of issuing authorities on any of our plans, and we have no plans to introduce one Issuing authorities can issue licences for any product, by the way - they're there to make reporting a bit nicer, rather than a technical limitation (IE: there's no one-to-one relation between products and issuing authorities)
  4. cogative

    Enverido - Simpler Licensing

    Our free plan (The "homebrew" plan) currently has a limit of 10 licences, are you suggesting lowering this to 3-5?
  5. cogative

    Enverido - Simpler Licensing

    Hi all, We've updated our pricing for the post-BETA release of Enverido. We're thinking of the new pricing being $15/month for the start-up plan, and $25/month for the business plan. Does anybody have any thoughts on this? I know a couple of people thought the $50/month for the business plan was a little steep.
  6. See the edit I just made to my previous post, but essentially you could just throw that into your module's root directory, change some of the details to fit your module, add the "enverido/php" line to the "requires" section and you're pretty much good to go . In the module files themselves (eg: "mymodule.php") make sure to make a "require_once" call to the autoload.php file that's generated by Composer. If you google a general tutorial on Composer I'm sure this'll be covered. But essentially you require_once the autoload.php file, and that file automatically includes all the libraries you installed using Composer.
  7. Take a look at an example composer.json for a Blesta module here: https://github.com/enverido/blesta/blob/master/composer.json (@Paul might be able to provide a better example?) But to include the Enverido PHP library, you'd just add "enverido/php" under the "requires" section of the composer.json for the module. You could also remove GuzzleHTTP and PsySH from the composer.json, since they'll automatically be installed if you add "enverido/php".
  8. Composer will only install from the composer.json in the current working directory, so as far as I'm aware there shouldn't be any confusion between composer configurations for your modules and Blesta. I'm not sure if there's a way for Blesta to automatically execute composer to install the module, or if you have to do it yourself manually. I know when I was doing it I just executed "composer install" after uploading the module files. Are you trying to use the Enverido PHP library to license your module?
  9. cogative

    Enverido - Simpler Licensing

    Merged. Thanks for the pull request.
  10. cogative

    Enverido - Simpler Licensing

    The GitHub repository deliberately doesn't have a vendor/ directory, so that it can be used with Composer to install the module, and this allows the package to be listed on Packagist. If you want a "pre-packaged" version with a vendor directory already setup, you can download via the marketplace or through enverido itself. The reason I ended up doubling up the try/catch statements was that i was finding that adding the if(...) statement underneath each command didn't always trigger the Blesta view with an error, even if the setErrors(..) command had just been executed, and instead the code ended up throwing an exception where certain variables were "null". That's why the try/catches sometimes appear in both files (this and to allow a central "point" to log the API requests, rather than to manually log the request every place it's made in the module. I'll definitely look into refactoring it in the near-future, but it's a working solution so it's not a top priority right now. Feel free to make a pull request, but by no means feel obligated to - I agree that a cleaner method is certainly a possibility, and I'm going to look into reimplementing the API in the Blesta module, using the PHP library.
  11. cogative

    Enverido - Simpler Licensing

    Latest Blesta module release (1.3.5) is available on GitHub and the marketplace, now! API calls are now logged to Blesta's module logs, and API exceptions are caught and displayed to the user in a nice format. I think I've got them all, but if anybody runs into an exception that isn't caught let me know and I'll push out a new version. As usual, the update process is a simple drop in the new version, overwriting the old copy. Let us know if you run into any issues!
  12. cogative

    Enverido - Simpler Licensing

    I'm just adding catching API exceptions, I'll add logging the request/response to Blesta's module logs at the same time
  13. cogative

    Enverido - Simpler Licensing

    Ha! Well you sure proved me wrong! I'll see if I can change that a 4xx response. The principle still stands the same though, the Guzzle HTTP client will still catch 500 responses and throw an exception, so we could still wrap the API call in a try/catch then feed the error back to Blesta (with the exception message, for good measure!) If you're asking why this error was thrown: it's likely you haven't included an "email" form field before sending the request. Parameters required are here: https://docs.cogative.com/pages/viewpage.action?pageId=1409441#id-/licence-POST Not sure if it was just an example or a genuine question, so I thought I'd cover all bases! Edit: If you retry that erroneous request now, you should get a 400 bad request code, instead of a 500 code. The reason a 500 code was returned before is because that's what our exceptions default to when not provided with a specific code. The code isn't as important since the message attached to the error explains the issue pretty well, but it makes sense semantically for this to be a 400 bad request instead of a 500 internal server error code. I've also changed other exceptions encountered when generating a licence to be 400 bad requests (eg: missing IP/domain), instead of 500 errors.
  14. cogative

    Enverido - Simpler Licensing

    To add some more info: The API wil throw an HTTP response error of some kind if your request fails (normally either 403, 404 or 401 for any errors we "expect" to occur - generally things like trying to access a licence or product you don't own, a licence or product that doesn't exist, or a missing API key). I can't think of any 5xx errors that are thrown by the API unless you maybe deliberately malform the API URL. Guzzle's HTTP client will throw a ClientException if any of these codes are encountered, so in the Blesta module's API class we can just wrap the requests in a Try/Catch statement and then return a different response to the Blesta module class, which can then feedback an error to the user. Edit: I just took a look at some of the existing Blesta modules, and it looks like it'd be easier to wrap the try/catch around the API call inside the module class, instead of inside the API class itself. This makes it easier to pass the errors back to the Blesta UI for the user to action. @Paul does that sound like a sensible course of action to you?
  15. cogative

    Enverido - Simpler Licensing

    Thanks - appreciate that. I'll also take a look at it tomorrow. Are you speaking specifically about the error with the organisation name with multiple words? Edit: later today, now - UK time! Input validation errors are presented to Blesta (eg: if you don't enter an API key, stuff like that). Some internal API failings do have to be mapped to an output in Blesta, though (this is stuff that shouldn't generally be an issue, eg: if your API key is incorrect).