Skip to content

Instantly share code, notes, and snippets.

View kimberleehowley's full-sized avatar

Kimberlee Howley kimberleehowley

View GitHub Profile
@kimberleehowley
kimberleehowley / package.json
Created October 3, 2019 22:11
Dependencies for using Twilio in Azure (for Mean Girls Day app)
{
"name": "twilio-azure-functions-node",
"version": "1.0.0",
"description": "Receive SMS and calls with Azure Functions and Node.js",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "Twilio and your-name",
"license": "MIT",
@kimberleehowley
kimberleehowley / index.js
Created October 3, 2019 22:12
Responding to a text to a Twilio number from Azure (for Mean Girls Day app)
// We're using Twilio in this app, and getting ready to send a message response
const MessagingResponse = require('twilio').twiml.MessagingResponse;
// We're exporting our function from Azure
module.exports = function (context) {
// Logging what's happening in Azure
context.log('JavaScript HTTP trigger function processed a request.');
// Create a new TwiML response
const response = new MessagingResponse();
@kimberleehowley
kimberleehowley / index.js
Last active October 3, 2019 22:22
Playing an audio file in response to a call to a Twilio number from Azure
// Use Twilio in this app
const VoiceResponse = require('twilio').twiml.VoiceResponse;
// Export the function from Azure
module.exports = function (context) {
// Log the response in Azure
context.log('JavaScript HTTP trigger function processed a request.');
// Create a new TwiML response, this time using voice
const twiml = new VoiceResponse();
@kimberleehowley
kimberleehowley / extends-specification.groovy
Last active January 22, 2020 20:23
Tests are recognized by Spock if a Groovy or Java class extends the abstract class Specification.
class CampaignServiceSpec extends Specification {
// fields
// fixture methods
// feature methods
// helper methods
}
@Shared res = new VeryExpensiveResource()
@Shared survey = surveyDataService.get(1) // shared resource by several feature methods
def setupSpec // runs once - before the first feature method
def setup // runs before every feature method
def cleanup // runs after every feature method
def cleanupSpec // runs once - after the last feature method
package com.testguide
import grails.testing.gorm.DomainUnitTest
import org.springframework.validation.FieldError
import spock.lang.Specification
import static com.testguide.StringUtil.newUuid
import static com.testguide.test.UnitTestDomainFactory.createDomain
class CampaignSpec extends Specification implements DomainUnitTest<Campaign> {
import grails.testing.gorm.DomainUnitTest
import spock.lang.Specification
class CampaignSpec extends Specification implements DomainUnitTest<Campaign> {
}
package com.testguide
import com.testguide.CampaignService
import com.testguide.User
import com.testguide.dataservice.UserDataService
import grails.testing.mixin.integration.Integration
import grails.web.servlet.mvc.GrailsParameterMap
import org.springframework.mock.web.MockHttpServletRequest
import org.springframework.test.annotation.Rollback
import org.springframework.transaction.annotation.Transactional
def controllerFunction() {
def user = User.get(params.userId)
if (!userPermissionService.hasPermissionToDoThis(user) {
response.status = 403
render "User unauthorized"
return
}
def comments = commentsService.getByUser(user)
...