package com.tyndalehouse.step.rest.controllers;
import com.tyndalehouse.step.core.models.ClientSession;
import com.tyndalehouse.step.core.service.SupportRequestService;
import com.yammer.metrics.annotation.Timed;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.inject.Inject;
import javax.inject.Provider;
import javax.inject.Singleton;
import java.util.concurrent.TimeUnit;
/**
* @author chrisburrell
*/
@Singleton
public class SupportController {
private final SupportRequestService supportRequestService;
private final Provider<ClientSession> clientSession;
@Inject
public SupportController(SupportRequestService supportRequestService, final Provider<ClientSession> provider) {
this.supportRequestService = supportRequestService;
clientSession = provider;
}
/**
* Creates a support request in JIRA - this is a POST, so we need to get the parameters in manually ourselves
* rather than rely on reflection
*/
@Timed(name = "support-request", group = "analysis", rateUnit = TimeUnit.SECONDS, durationUnit = TimeUnit.MILLISECONDS)
public void createRequest() {
final ClientSession session = clientSession.get();
this.supportRequestService.createRequest(
session.getParam("summary"),
session.getParam("description"),
session.getParam("url"),
session.getParam("type"),
session.getParam("email"));
}
}