use of org.olat.course.db.CourseDBEntry in project OpenOLAT by OpenOLAT.
the class CourseDBTest method createEntry_putQuery.
@Test
public void createEntry_putQuery() throws IOException, URISyntaxException {
RestConnection conn = new RestConnection();
Assert.assertTrue(conn.login(auth.getName(), JunitTestHelper.PWD));
String category = createRndCategory();
String key = "myKeyName";
String value = "an interessant value";
UriBuilder uri = getUriBuilder(course.getResourceableId(), category).path("values").path(key).queryParam("value", value);
HttpPut put = conn.createPut(uri.build(), MediaType.APPLICATION_JSON, true);
HttpResponse response = conn.execute(put);
assertEquals(200, response.getStatusLine().getStatusCode());
EntityUtils.consume(response.getEntity());
conn.shutdown();
CourseDBEntry entry = courseDbManager.getValue(course, auth, category, key);
Assert.assertNotNull(entry);
Assert.assertEquals(key, entry.getName());
Assert.assertEquals(value, entry.getValue());
Assert.assertEquals(category, entry.getCategory());
}
use of org.olat.course.db.CourseDBEntry in project OpenOLAT by OpenOLAT.
the class CourseDbWebService method getValuePlain.
/**
* Retrieve a value of an authenticated user.
* @response.representation.200.qname {http://www.example.com}keyValuePair
* @response.representation.200.mediaType text/plain, text/html
* @response.representation.200.doc A value of the course
* @response.representation.200.example Green
* @response.representation.404.doc The entry cannot be found
* @param courseId The course resourceable's id
* @param category The name of the database
* @param name The name of the key value pair
* @param request The HTTP request
* @return
*/
@GET
@Path("values/{name}")
@Produces({ MediaType.TEXT_PLAIN, MediaType.TEXT_HTML })
public Response getValuePlain(@PathParam("courseId") Long courseId, @PathParam("category") String category, @PathParam("name") String name, @Context HttpServletRequest request) {
ICourse course = loadCourse(courseId);
UserRequest ureq = RestSecurityHelper.getUserRequest(request);
CourseDBEntry entry = CoreSpringFactory.getImpl(CourseDBManager.class).getValue(course, ureq.getIdentity(), category, name);
if (entry == null) {
return Response.serverError().status(Status.NOT_FOUND).build();
}
Object value = entry.getValue();
String val = value == null ? "" : value.toString();
return Response.ok(val).build();
}
use of org.olat.course.db.CourseDBEntry in project OpenOLAT by OpenOLAT.
the class CourseDbWebService method getValue.
/**
* Retrieve a value of an authenticated user.
* @response.representation.200.qname {http://www.example.com}keyValuePair
* @response.representation.200.mediaType application/xml, application/json
* @response.representation.200.doc The value in the course
* @response.representation.200.example {@link org.olat.restapi.support.vo.Examples#SAMPLE_KEYVALUEVO}
* @response.representation.404.doc The entry cannot be found
* @param courseId The course resourceable's id
* @param category The name of the database
* @parma name The name of the key value pair
* @param request The HTTP request
* @return
*/
@GET
@Path("values/{name}")
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON })
public Response getValue(@PathParam("courseId") Long courseId, @PathParam("category") String category, @PathParam("name") String name, @Context HttpServletRequest request) {
ICourse course = loadCourse(courseId);
UserRequest ureq = RestSecurityHelper.getUserRequest(request);
CourseDBEntry entry = CoreSpringFactory.getImpl(CourseDBManager.class).getValue(course, ureq.getIdentity(), category, name);
if (entry == null) {
return Response.serverError().status(Status.NOT_FOUND).build();
}
Object value = entry.getValue();
KeyValuePair pair = new KeyValuePair(name, value == null ? "" : value.toString());
return Response.ok(pair).build();
}
use of org.olat.course.db.CourseDBEntry in project OpenOLAT by OpenOLAT.
the class GetUserCourseDBFunction method call.
/**
* @see org.olat.course.condition.interpreter.AbstractFunction#call(java.lang.Object[])
*/
@Override
public Object call(Object[] inStack) {
/*
* argument check
*/
if (inStack.length > 2) {
return handleException(new ArgumentParseException(ArgumentParseException.NEEDS_FEWER_ARGUMENTS, name, "", "error.fewerargs", "solution.providetwo.attrvalue"));
} else if (inStack.length < 1) {
return handleException(new ArgumentParseException(ArgumentParseException.NEEDS_MORE_ARGUMENTS, name, "", "error.moreargs", "solution.providetwo.attrvalue"));
}
/*
* argument type check
*/
if (!(inStack[0] instanceof String)) {
return handleException(new ArgumentParseException(ArgumentParseException.WRONG_ARGUMENT_FORMAT, name, "", "error.argtype.attributename", "solution.example.name.infunction"));
}
CourseEditorEnv cev = getUserCourseEnv().getCourseEditorEnv();
if (cev != null) {
// return emtyp string to continue with condition evaluation test
return defaultValue();
}
CourseDBManager courseDbManager = CoreSpringFactory.getImpl(CourseDBManager.class);
Identity ident = getUserCourseEnv().getIdentityEnvironment().getIdentity();
String category = null;
String key = null;
if (inStack.length == 1) {
category = null;
key = (String) inStack[1];
} else if (inStack.length == 2) {
category = (String) inStack[0];
key = (String) inStack[1];
}
Long courseId = getUserCourseEnv().getCourseEnvironment().getCourseResourceableId();
Object value;
try {
CourseDBEntry entry = courseDbManager.getValue(courseId, ident, category, key);
if (entry == null) {
return defaultValue();
}
value = entry.getValue();
if (value == null) {
return defaultValue();
}
} catch (Exception e) {
log.error("", e);
return defaultValue();
}
return value.toString();
}
use of org.olat.course.db.CourseDBEntry in project OpenOLAT by OpenOLAT.
the class CourseDbWebService method internPutValue.
private Response internPutValue(Long courseId, String category, String name, Object value, HttpServletRequest request) {
ICourse course = loadCourse(courseId);
UserRequest ureq = RestSecurityHelper.getUserRequest(request);
CourseDBEntry entry = CoreSpringFactory.getImpl(CourseDBManager.class).setValue(course, ureq.getIdentity(), category, name, value);
if (entry == null) {
return Response.serverError().status(Status.INTERNAL_SERVER_ERROR).build();
}
return Response.ok().build();
}
Aggregations