| 12345678910111213141516171819202122232425262728293031323334 |
- mongoose = require 'mongoose'
- Schema = mongoose.Schema
- ObjectId = Schema.ObjectId
- settings = require 'settings-sharelatex'
- request = require 'request'
- PublisherSchema = new Schema
- slug: { type: String, required: true }
- managerIds: [ type:ObjectId, ref:'User' ]
- # fetch publisher's (brand on v1) data from v1 API. Errors are ignored
- PublisherSchema.method 'fetchV1Data', (callback = (error, publisher)->) ->
- request {
- baseUrl: settings.apis.v1.url
- url: "/api/v2/brands/#{this.slug}"
- method: 'GET'
- auth:
- user: settings.apis.v1.user
- pass: settings.apis.v1.pass
- sendImmediately: true
- }, (error, response, body) =>
- try parsedBody = JSON.parse(body) catch e
- this.name = parsedBody?.name
- this.partner = parsedBody?.partner
- callback(null, this)
- conn = mongoose.createConnection(settings.mongo.url, {
- server: {poolSize: settings.mongo.poolSize || 10},
- config: {autoIndex: false}
- })
- Publisher = conn.model 'Publisher', PublisherSchema
- exports.Publisher = Publisher
- exports.PublisherSchema = PublisherSchema
|