Publisher.coffee 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. mongoose = require 'mongoose'
  2. Schema = mongoose.Schema
  3. ObjectId = Schema.ObjectId
  4. settings = require 'settings-sharelatex'
  5. request = require 'request'
  6. PublisherSchema = new Schema
  7. slug: { type: String, required: true }
  8. managerIds: [ type:ObjectId, ref:'User' ]
  9. # fetch publisher's (brand on v1) data from v1 API. Errors are ignored
  10. PublisherSchema.method 'fetchV1Data', (callback = (error, publisher)->) ->
  11. request {
  12. baseUrl: settings.apis.v1.url
  13. url: "/api/v2/brands/#{this.slug}"
  14. method: 'GET'
  15. auth:
  16. user: settings.apis.v1.user
  17. pass: settings.apis.v1.pass
  18. sendImmediately: true
  19. }, (error, response, body) =>
  20. try parsedBody = JSON.parse(body) catch e
  21. this.name = parsedBody?.name
  22. this.partner = parsedBody?.partner
  23. callback(null, this)
  24. conn = mongoose.createConnection(settings.mongo.url, {
  25. server: {poolSize: settings.mongo.poolSize || 10},
  26. config: {autoIndex: false}
  27. })
  28. Publisher = conn.model 'Publisher', PublisherSchema
  29. exports.Publisher = Publisher
  30. exports.PublisherSchema = PublisherSchema