Issue here is, actual code can be bit more complicated than that.
eg:
https://github.com/wso2/product-is/blob/master/portal/osgi-services/org.wso2.is.portal.user.client.api/src/main/java/org/wso2/is/portal/user/client/api/RecoveryMgtServiceImpl.java#L150:L163



On Mon, Mar 20, 2017 at 12:44 PM, SajithAR Ariyarathna <sajit...@wso2.com>
wrote:

> IMO following approach would be better,
>
> try {
>
> // some logic goes here, that might throw an exception.
>
> // e.g. callOSGiService("org.wso2.is.portal.user.client.api.
> RecoveryMgtService","isNotificationBasedPasswordRe", []);
>
> return {success: true, message: {title: "Success", body: "Security
> question changed successfully."}}; // everything went smoothly
>
> } catch(e) {
>
> // In here you can compose a meaningful error message to display in the
> UI. Something like follwing.
>
> var msg = {title: "Cannot change the security question", body: "You don't
> have enough permissions to change the security question of 'admin' user."};
> return {success: false, message: msg};
>
> }
>
>
> On Mon, Mar 20, 2017 at 5:48 PM, Manuranga Perera <m...@wso2.com> wrote:
>
>> UUF team,
>> So what is the best practice we need to document ? Currently I see people
>> just wrapping in Java and re-throwing some kind of UI error. I don't think
>> wiring UI specific logic in Java is the best way to do this. And it's
>> annoying to pass a "isSuccess" all over the code.
>>
>> Maybe we should ask them to do it in JS ( using Nashorn catch (e if e
>> instanceof TypeError))
>> OR
>> implement UUF native way to do it.
>>
>> EG:
>>
>> my-page.js
>>     function onGet() {
>>         return callOSGiService("org.wso2.is.portal.user.client.api.
>> RecoveryMgtService","isNotificationBasedPasswordRe", []);
>>     }
>>
>> my-page.hbs
>>     <div>
>>       {{#try}}
>>          {{if this}}
>>              <button> Recover my password </button>
>>          {{else}}
>>              <div class="notification info"> Notification based password
>> recovery is not enabled for you ({{userId}}), please contact admin for
>> manual recovery </div>
>>          {{/if}}
>>       {{catch}}
>>          <div class="panel panel-danger">
>>             <div class="panel-heading">Error occurred </div>
>>             <div class="panel-body">
>>                {{#javaErr "UserNotFoundException" httpCode="404"}}
>> ER10293: User '{{userId}}' not available. {{/javaErr}}
>>                {{#javaErr "IdentityRecoveryException"}} ER10294: Error
>> during recovery process. {{secure "admin.user-mgt"}} {{e.message}} 
>> {{/secure}}
>> {{/javaErr}}
>>                {{#unknownErr}} ER10299: Something went wrong.
>> {{/unknownErr}}
>>                Please contact admin with the error code and request id
>> {{@requestId}} for more information.
>>            </div>
>>          </div>
>>       {{/try}}
>>     </div>
>>
>> What do you think?
>>
>> On Mon, Mar 20, 2017 at 5:38 AM, SajithAR Ariyarathna <sajit...@wso2.com>
>> wrote:
>>
>>>
>>>
>>> On Mon, Mar 20, 2017 at 9:42 AM, Pushpalanka Jayawardhana <
>>> la...@wso2.com> wrote:
>>>
>>>> Hi All,
>>>>
>>>> Shall we add a section on 'Error handling' to the UUF best practices
>>>> documentation to capture information on this?
>>>>
>>>> +1
>>>
>>>> On Thu, Feb 2, 2017 at 8:43 AM, Dakshika Jayathilaka <daksh...@wso2.com
>>>> > wrote:
>>>>
>>>>> +1 for KasunGs suggestion.
>>>>>
>>>>> Even UIExceptions can be different.
>>>>>
>>>>> *Types of UI errors*
>>>>>
>>>>>    - User input errors
>>>>>    - App errors
>>>>>    - Incompatible state errors
>>>>>
>>>>> IMHO depending on the permission level, above error messages can be
>>>>> optimized to give optimal user experience.
>>>>>
>>>>> Regards,
>>>>>
>>>>> *Dakshika Jayathilaka*
>>>>> PMC Member & Committer of Apache Stratos
>>>>> Associate Technical Lead
>>>>> WSO2, Inc.
>>>>> lean.enterprise.middleware
>>>>> 0771100911 <077%20110%200911>
>>>>>
>>>>> On Wed, Feb 1, 2017 at 12:31 PM, KasunG Gajasinghe <kas...@wso2.com>
>>>>> wrote:
>>>>>
>>>>>>
>>>>>> To not disclose the back-end server details to the user, we should
>>>>>> always catch the exceptions in the UUF app. If it is a UIException, then 
>>>>>> we
>>>>>> can show the error message to the user. Otherwise, we should show a 
>>>>>> generic
>>>>>> error message - something like "An error has occurred while processing 
>>>>>> your
>>>>>> request."
>>>>>>
>>>>>> If we know how to handle it, it is best if we handle it within the
>>>>>> same page where the error has occurred. We already do this in multiple
>>>>>> places. For example, see the code for user portal's login page when you
>>>>>> enter invalid credentials.
>>>>>>
>>>>>> For unexpected errors, we can customize the error pages via the
>>>>>> app.yaml's errorPages config.
>>>>>>
>>>>>> app.yaml:
>>>>>> errorPages:
>>>>>>   404: "/foundation/error/404"
>>>>>>   401: "/login"
>>>>>>   default: "/foundation/error/default"
>>>>>>
>>>>>> On Wed, Feb 1, 2017 at 12:20 PM, Ayesha Dissanayaka <aye...@wso2.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>> What are the good practices around exception handling in UUF in
>>>>>>> scenarios like handling exceptions thrown when callOSGiService.
>>>>>>>
>>>>>>> for example consider below method.
>>>>>>>
>>>>>>>>     /**
>>>>>>>>      * Check whether the notification based password recovery
>>>>>>>> enabled
>>>>>>>>      */
>>>>>>>>
>>>>>>>>     function isNotificationBasedPasswordRecoveryEnabled() {
>>>>>>>>         var checkMethod = "isNotificationBasedPasswordRe
>>>>>>>> coveryEnabled";
>>>>>>>>         return callOSGiService("org.wso2.is.p
>>>>>>>> ortal.user.client.api.RecoveryMgtService",
>>>>>>>>             checkMethod, []);
>>>>>>>>
>>>>>>>>     }
>>>>>>>>
>>>>>>>
>>>>>>> If I don't catch exceptions within this method or whenever using 
>>>>>>> *isNotificationBasedPasswordRecoveryEnabled
>>>>>>> *method, in the UI I get below page.
>>>>>>>
>>>>>>>
>>>>>>> ​What is the recommended way to handle this?
>>>>>>>
>>>>>>>    1. Handle exceptions around callOSGiService.
>>>>>>>       - Then we'll have to repeat the same whenever we call osgi
>>>>>>>       from a uuf app
>>>>>>>       2. Handle at method invocation, and redirect to error page.
>>>>>>>    3. Provide a generic message in the UI from UUF in such cases,
>>>>>>>    unless handled in the app.
>>>>>>>    4. Do we have to handle exceptions from osgi service itself?
>>>>>>>    5. Other?
>>>>>>>
>>>>>>> ​Thanks!
>>>>>>> -Ayesha
>>>>>>>
>>>>>>> --
>>>>>>> *Ayesha Dissanayaka*
>>>>>>> Software Engineer,
>>>>>>> WSO2, Inc : http://wso2.com
>>>>>>> <http://www.google.com/url?q=http%3A%2F%2Fwso2.com&sa=D&sntz=1&usg=AFQjCNEZvyc0uMD1HhBaEGCBxs6e9fBObg>
>>>>>>> 20, Palmgrove Avenue, Colombo 3
>>>>>>> E-Mail: aye...@wso2.com <ayshsa...@gmail.com>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Dev mailing list
>>>>>>> Dev@wso2.org
>>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>>
>>>>>> *Kasun Gajasinghe*Associate Technical Lead, WSO2 Inc.
>>>>>> email: kasung AT spamfree wso2.com
>>>>>> linked-in: http://lk.linkedin.com/in/gajasinghe
>>>>>> blog: http://kasunbg.org
>>>>>> phone: +1 650-745-4499 <(650)%20745-4499>, 77 678 0813
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Dev mailing list
>>>>>> Dev@wso2.org
>>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Dev mailing list
>>>>> Dev@wso2.org
>>>>> http://wso2.org/cgi-bin/mailman/listinfo/dev
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> Pushpalanka.
>>>> --
>>>> Pushpalanka Jayawardhana, B.Sc.Eng.(Hons).
>>>> Senior Software Engineer, WSO2 Lanka (pvt) Ltd;  wso2.com/
>>>> Mobile: +94779716248
>>>> Blog: pushpalankajaya.blogspot.com/ | LinkedIn: lk.linkedin.com/in/p
>>>> ushpalanka/ | Twitter: @pushpalanka
>>>>
>>>>
>>>
>>>
>>> --
>>> Sajith Janaprasad Ariyarathna
>>> Software Engineer; WSO2, Inc.;  http://wso2.com/
>>> <https://wso2.com/signature>
>>>
>>
>>
>>
>> --
>> With regards,
>> *Manu*ranga Perera.
>>
>> phone : 071 7 70 20 50
>> mail : m...@wso2.com
>>
>
>
>
> --
> Sajith Janaprasad Ariyarathna
> Software Engineer; WSO2, Inc.;  http://wso2.com/
> <https://wso2.com/signature>
>



-- 
With regards,
*Manu*ranga Perera.

phone : 071 7 70 20 50
mail : m...@wso2.com
_______________________________________________
Dev mailing list
Dev@wso2.org
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to