Skip to content

Commit

Permalink
feat : encode message in api before sending it
Browse files Browse the repository at this point in the history
  • Loading branch information
SebDez committed Apr 2, 2017
1 parent 9820842 commit 53454f4
Show file tree
Hide file tree
Showing 3 changed files with 56 additions and 6 deletions.
21 changes: 17 additions & 4 deletions src/app/module/contact/service/api/contact-api.js
Expand Up @@ -7,15 +7,28 @@ export default class ContactApi extends LucioleApi {

/**
* Send contact message
* @type {Object} endpoint The endpoint to use
* @type {Object} message The message object to send
* @return {Promise} A promise to resolve
*/
sendContactMessage (endpoint, message) {
const body = {
const body = this.encodeMessage(message)
const uri = `${endpoint}/v1/contact`
return this.requestHelper.post(uri, body)
}

/**
* Encode a message to valid JSON format
* @type {Object} endpoint The endpoint to use
* @type {Object} message The message object to send
* @return {Object} A message encoded
*/
encodeMessage (message) {
return {
mail: message.mail,
subject: message.subject,
content: message.content
content: message.content,
recaptcha: message.captcharesponse
}
const uri = `${endpoint}/v1/contact`
return this.requestHelper.post(uri, body)
}
}
39 changes: 37 additions & 2 deletions src/app/module/contact/service/api/contact-api.spec.js
Expand Up @@ -16,7 +16,8 @@ describe('ContactApi', () => {
message = {
mail: 'message.mail',
subject: 'message.subject',
content: 'message.content'
content: 'message.content',
captcharesponse: 'recaptchakey'
}
})

Expand All @@ -27,11 +28,45 @@ describe('ContactApi', () => {
it('Expect to have call post method', (done) => {
let spy = chai.spy.on(rHelper, 'post')
let uri = 'endpoint/v1/contact'
let body = message
let body = {
mail: 'message.mail',
subject: 'message.subject',
content: 'message.content',
recaptcha: 'recaptchakey'
}
serv.sendContactMessage('endpoint', message).then(() => {
expect(spy).to.have.been.called.with(uri, body)
done()
})
})
})

describe('encodeMessage', () => {
var serv, message
beforeEach(() => {
serv = new ContactApi()
message = {
mail: 'message.mail',
subject: 'message.subject',
content: 'message.content',
captcharesponse: 'recaptchakey'
}
})

it('Expect to return an object with valid mail', () => {
expect(serv.encodeMessage(message).mail).to.equals('message.mail')
})

it('Expect to return an object with valid subject', () => {
expect(serv.encodeMessage(message).subject).to.equals('message.subject')
})

it('Expect to return an object with valid content', () => {
expect(serv.encodeMessage(message).content).to.equals('message.content')
})

it('Expect to return an object with valid recaptcha', () => {
expect(serv.encodeMessage(message).recaptcha).to.equals('recaptchakey')
})
})
})
2 changes: 2 additions & 0 deletions src/app/module/contact/service/contact-service.js
Expand Up @@ -15,6 +15,8 @@ export default class ContactService {

/**
* Send contact message
* @type {Object} endpoint The endpoint to use
* @type {Object} message The message object to send
* @return {Promise} A promise to resolve
*/
sendContactMessage (endpoint, message) {
Expand Down

0 comments on commit 53454f4

Please sign in to comment.