summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/models/tutorials.js.coffee
blob: 9e2e8a1f4dd1426374ef13ffb45edc6ae1f376f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class CakeSide.Models.Tutorial extends Backbone.Model
  paramRoot: 'tutorial'

  defaults:
    id: null
    url: null
    image_url: null
    heading: null
    description: null

  validate: (attributes, options) ->
    return "Invalid Url." unless @isValidUrl(attributes.url || '')
    return "This tutorial has no photos." unless @hasImage(attributes.image_url)

  isValidUrl: (url) ->
    expression = /[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi;
    url.match(new RegExp(expression))

  hasImage: (image_url) ->
    image_url

class CakeSide.Collections.TutorialsCollection extends Backbone.Collection
  model: CakeSide.Models.Tutorial
  url: '/api/v1/tutorials'