diff options
Diffstat (limited to 'src/com/p4square')
| -rw-r--r-- | src/com/p4square/grow/backend/GrowBackend.java | 7 | ||||
| -rw-r--r-- | src/com/p4square/grow/backend/apiinfo.html | 41 | ||||
| -rw-r--r-- | src/com/p4square/grow/backend/resources/BannerResource.java | 19 | ||||
| -rw-r--r-- | src/com/p4square/grow/backend/resources/SurveyResultsResource.java | 11 | ||||
| -rw-r--r-- | src/com/p4square/grow/model/Banner.java | 20 | 
5 files changed, 92 insertions, 6 deletions
| diff --git a/src/com/p4square/grow/backend/GrowBackend.java b/src/com/p4square/grow/backend/GrowBackend.java index 683c99b..e747a1b 100644 --- a/src/com/p4square/grow/backend/GrowBackend.java +++ b/src/com/p4square/grow/backend/GrowBackend.java @@ -10,8 +10,10 @@ import org.apache.log4j.Logger;  import org.restlet.Application;  import org.restlet.Component; -import org.restlet.data.Protocol;  import org.restlet.Restlet; +import org.restlet.data.Protocol; +import org.restlet.data.Reference; +import org.restlet.resource.Directory;  import org.restlet.routing.Router;  import com.p4square.grow.config.Config; @@ -107,7 +109,6 @@ public class GrowBackend extends Application          Router router = new Router(getContext());          // Account API -        router.attach("/accounts", AccountResource.class);          router.attach("/accounts/{userId}", AccountResource.class);          // Survey API @@ -133,6 +134,8 @@ public class GrowBackend extends Application          router.attach("/feed/{topic}/{thread}", ThreadResource.class);          //router.attach("/feed/{topic/{thread}/{message}", MessageResource.class); +        router.attachDefault(new Directory(getContext(), new Reference(getClass().getResource("apiinfo.html")))); +          return router;      } diff --git a/src/com/p4square/grow/backend/apiinfo.html b/src/com/p4square/grow/backend/apiinfo.html new file mode 100644 index 0000000..a3637c9 --- /dev/null +++ b/src/com/p4square/grow/backend/apiinfo.html @@ -0,0 +1,41 @@ +<html> +<head> +<title>API Info</title> +</head> +<body> +<dl> +<dt>/backend/accounts/{userId}</dt> +<dd>GET information about <em>userId</em> or PUT new information.</dd> + +<dt>/backend/assessment/question/{questionId}</dt> +<dd>GET information about <em>questionId</em>. Special <em>questionId</em>s: first identifies first question. count returns total number of questions.</dd> + +<dt>/backend/accounts/{userId}/assessment</dt> +<dd>GET the assessment summary for <em>userId</em> or DELETE <em>userId</em>'s assessment.</dd> + +<dt>/backend/accounts/{userId}/assessment/answers/{questionId}</dt> +<dd>GET <em>userId</em>'s answer to <em>questionId</em>, PUT a new answer, or DELETE an answer.</dd> + +<dt>/backend/training/{level}</dt> +<dd>GET all video information for <em>level</em>.</dd> + +<dt>/backend/training/{level}/videos/{videoId}</dt> +<dd>GET video information for <em>videoId</em> in <em>level</em>.</dd> + +<dt>/backend/accounts/{userId}/training</dt> +<dd>GET training record summary for <em>userId</em>.</dd> + +<dt>/backend/accounts/{userId}/training/videos/{videoId}</dt> +<dd>GET training record for <em>userId</em> and <em>videoId</em> or PUT a new record.</dd> + +<dt>/backend/banner</dt> +<dd>GET the info banner or PUT new banner info.</dd> + +<dt>/backend/feed/{topic}</dt> +<dd>Get all threads for forum <em>topic</em>.</dd> + +<dt>/backend/feed/{topic}/{thread}</dt> +<dd>Get all responses to question <em>thread</em> on forum <em>topic</em>.</dd> +</dl> +</body> +</html> diff --git a/src/com/p4square/grow/backend/resources/BannerResource.java b/src/com/p4square/grow/backend/resources/BannerResource.java index 4551777..8519f64 100644 --- a/src/com/p4square/grow/backend/resources/BannerResource.java +++ b/src/com/p4square/grow/backend/resources/BannerResource.java @@ -7,14 +7,19 @@ package com.p4square.grow.backend.resources;  import java.io.IOException;  import org.restlet.data.Status; -import org.restlet.resource.ServerResource; +import org.restlet.ext.jackson.JacksonRepresentation;  import org.restlet.representation.Representation;  import org.restlet.representation.StringRepresentation; +import org.restlet.resource.ServerResource; + +import com.fasterxml.jackson.databind.ObjectMapper;  import org.apache.log4j.Logger;  import com.p4square.grow.backend.GrowBackend;  import com.p4square.grow.backend.db.CassandraDatabase; +import com.p4square.grow.model.Banner; +import com.p4square.grow.provider.JsonEncodedProvider;  /**   * Fetches or sets the banner string. @@ -24,6 +29,8 @@ import com.p4square.grow.backend.db.CassandraDatabase;  public class BannerResource extends ServerResource {      private static final Logger LOG = Logger.getLogger(BannerResource.class); +    public static final ObjectMapper MAPPER = JsonEncodedProvider.MAPPER; +      private CassandraDatabase mDb;      @Override @@ -42,7 +49,7 @@ public class BannerResource extends ServerResource {          String result = mDb.getKey("strings", "banner");          if (result == null || result.length() == 0) { -            result = "{}"; +            result = "{\"html\":null}";          }          return new StringRepresentation(result); @@ -54,7 +61,13 @@ public class BannerResource extends ServerResource {      @Override      protected Representation put(Representation entity) {          try { -            mDb.putKey("strings", "banner", entity.getText()); +            JacksonRepresentation<Banner> representation = +                new JacksonRepresentation<>(entity, Banner.class); +            representation.setObjectMapper(MAPPER); + +            Banner banner = representation.getObject(); + +            mDb.putKey("strings", "banner", MAPPER.writeValueAsString(banner));              setStatus(Status.SUCCESS_NO_CONTENT);          } catch (IOException e) { diff --git a/src/com/p4square/grow/backend/resources/SurveyResultsResource.java b/src/com/p4square/grow/backend/resources/SurveyResultsResource.java index 4fba599..404ccec 100644 --- a/src/com/p4square/grow/backend/resources/SurveyResultsResource.java +++ b/src/com/p4square/grow/backend/resources/SurveyResultsResource.java @@ -26,6 +26,7 @@ import com.p4square.grow.model.Answer;  import com.p4square.grow.model.Question;  import com.p4square.grow.model.RecordedAnswer;  import com.p4square.grow.model.Score; +import com.p4square.grow.model.UserRecord;  import com.p4square.grow.provider.Provider; @@ -45,6 +46,7 @@ public class SurveyResultsResource extends ServerResource {      private CassandraDatabase mDb;      private Provider<String, Question> mQuestionProvider; +    private Provider<String, UserRecord> mUserRecordProvider;      private RequestType mRequestType;      private String mUserId; @@ -57,6 +59,7 @@ public class SurveyResultsResource extends ServerResource {          final GrowBackend backend = (GrowBackend) getApplication();          mDb = backend.getDatabase();          mQuestionProvider = backend.getQuestionProvider(); +        mUserRecordProvider = backend.getUserRecordProvider();          mUserId = getAttribute("userId");          mQuestionId = getAttribute("questionId"); @@ -152,7 +155,13 @@ public class SurveyResultsResource extends ServerResource {              case ASSESSMENT:                  try {                      mDb.deleteRow("assessments", mUserId); -                    mDb.deleteKey("accounts", mUserId, "value"); // TODO: IMPORTANT! This needs to be narrower. + +                    UserRecord record = mUserRecordProvider.get(mUserId); +                    if (record != null) { +                        record.setLanding("assessment"); +                        mUserRecordProvider.put(mUserId, record); +                    } +                      success = true;                  } catch (Exception e) { diff --git a/src/com/p4square/grow/model/Banner.java b/src/com/p4square/grow/model/Banner.java new file mode 100644 index 0000000..b786b36 --- /dev/null +++ b/src/com/p4square/grow/model/Banner.java @@ -0,0 +1,20 @@ +/* + * Copyright 2014 Jesse Morgan + */ + +package com.p4square.grow.model; + +/** + * Page Banner Data. + */ +public class Banner { +     private String mHtml; + +     public String getHtml() { +        return mHtml; +     } + +     public void setHtml(final String html) { +         mHtml = html; +     } +} | 
