Create a Service to Handle HTTP Requests (Pre-Vinson)

This topic applies to

Applies to

SuiteCommerce Advanced

The following example shows the required components of a service in pre-Vinson implementations of SuiteCommerce Advanced.

function service (request) { 'use strict'; var Application = require('Application'); try { var method = request.getMethod(); var QuestionsAndAnswersModel = require('QuestionsAndAnswers.Model'); switch (method) { case 'GET': var page = request.getParameter('page'); , result = QuestionsAndAnswersModel.search(page); Application.sendContent(result,{'cache': response.CACHE_DURATION_LONG}); break; case 'POST': var data = JSON.parse(request.getBody() || '{}') , result = QuestionsAndAnswersModel.create(data) Application.sendContent(result, {'status': 201}); break; default: Application.sendError(methodNotAllowedError); } } catch (e) { Application.sendError(e); } }

To create a custom service for a pre-Vinson implementation of SCA, you must perform the following:

  • Step 1: Create a Reference to the Application Module

  • Step 2: Define a try/catch Block

  • Step 3: Create a Reference to the Backend Model

  • Step 4: Define a Switch Statement to Handle the HTTP Request

Step 1: Create a Reference to the Application Module

The following code enables the service to access methods defined in the Application module.

var Application = require('Application');

The Application module contains HTTP methods the service uses to send data to the frontend application and return any errors. This module is define in the ssp_libraries.js file. See The ssp_libraries.js File.

Note

Services in SuiteCommerce Advanced do not include the HTTP response as a parameter. Services return a JSON object using the sendContent method defined in the Application module.


Step 2: Define a try/catch Block

The body of a service must be included within a try/catch block. This ensures that any errors that occur are handled correctly. These errors are passed back to the frontend application and are handled by the ErrorManagement module.

Step 3: Create a Reference to the Backend Model
var QuestionsAndAnswersModel = require('QuestionsAndAnswers.Model');

This statement enables the service to call methods defined in the backend model.

Step 4: Define a Switch Statement to Handle the HTTP Request

The main task of a service is to specify how to handle the HTTP action specified by the request. This is generally performed by a switch statement which contains a case statement for each HTTP method supported by the service.

switch (method) { case 'GET': var page = request.getParameter('page'); , result = QuestionsAndAnswersModel.search(page); Application.sendContent(result,{'cache': response.CACHE_DURATION_LONG}); break; case 'POST': var data = JSON.parse(request.getBody() || '{}') , result = ProductReview.create(data) Application.sendContent(result, {'status': 201}); break; default: Application.sendError(methodNotAllowedError);

The switch statement also contains a default statement to handle errors related to the HTTP request. This statement returns an error which is sent back to the frontend application and handled by the ErrorManagement module.