/SampleApplication/ColdBox3/model/form/FormService.cfc

http://github.com/bobsilverberg/ValidateThisColdBoxPlugin · ColdFusion CFScript · 72 lines · 55 code · 14 blank · 3 comment · 1 complexity · e0a94533049fcbee59da3d7d4d07ca46 MD5 · raw file

  1. <cfcomponent extends="model.abstract.AbstractService" singleton="true" hint="I am a facade for the form package. Note the singleton attribute which is used by ColdBox">
  2. <!---
  3. -------------------------------------------------------------------------
  4. dependancy injection
  5. -------------------------------------------------------------------------
  6. --->
  7. <cfproperty name="MailService" type="coldbox:plugin:MailService" scope="instance">
  8. <!---
  9. ------------------------------------------------------------
  10. constructor
  11. ------------------------------------------------------------
  12. --->
  13. <cfset instance = {}>
  14. <cffunction name="init" returntype="FormService" output="false">
  15. <cfscript>
  16. super.init();
  17. return this;
  18. </cfscript>
  19. </cffunction>
  20. <!---
  21. ---------------------------------------------------------------------------
  22. public
  23. ---------------------------------------------------------------------------
  24. --->
  25. <cffunction name="getEnquiryRequiredFields" returntype="struct" output="false" hint="returns a struct of required properties">
  26. <cfscript>
  27. /// path from model root
  28. return getRequiredFields( 'form.Enquiry' );
  29. </cfscript>
  30. </cffunction>
  31. <cffunction name="newEnquiry" returntype="Enquiry" output="false" hint="returns an new Enquiry">
  32. <cfscript>
  33. return new model.form.Enquiry();
  34. </cfscript>
  35. </cffunction>
  36. <cffunction name="sendEnquiry" returntype="ValidateThis.util.Result" output="false" hint="returns an new Enquiry">
  37. <cfargument name="params" type="struct" required="true" hint="I am typically the form collection">
  38. <cfscript>
  39. var ValidatorResult = "";
  40. var Enquiry = newEnquiry();
  41. var Email = instance.MailService.newMail();
  42. // populate model from request collection
  43. instance.BeanFactory.populateModel( Enquiry );
  44. ValidatorResult = instance.ValidateThis.validate( theObject=Enquiry, objectType="form.Enquiry" );
  45. if ( ValidatorResult.getIsSuccess() )
  46. {
  47. email.setTo( "john.whish@crisp-ebusiness.com" );
  48. email.setFrom( "john.whish@crisp-ebusiness.com" );
  49. email.setSubject( "Enquiry send with the new ColdBox MailService" );
  50. email.setType( "html" );
  51. email.setBody( "<em>Hello!</em>" );
  52. // send it
  53. instance.MailService.send( email );
  54. }
  55. return ValidatorResult;
  56. </cfscript>
  57. </cffunction>
  58. </cfcomponent>