Skip to content

Commit

Permalink
Update API to match schema
Browse files Browse the repository at this point in the history
- Add new models
  • Loading branch information
Harjot1Singh committed Jun 6, 2018
1 parent 75e514e commit cd28c7d
Show file tree
Hide file tree
Showing 14 changed files with 244 additions and 25 deletions.
2 changes: 1 addition & 1 deletion .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
"no-restricted-syntax": "off",
"no-shadow": "off",
"no-unused-vars": [
"error",
"warn",
{
"argsIgnorePattern": "(res|next)"
}
Expand Down
14 changes: 10 additions & 4 deletions index.js
Original file line number Diff line number Diff line change
Expand Up @@ -17,19 +17,25 @@ Model.knex( knex )
const Banis = require( './lib/models/Banis' )
const Lines = require( './lib/models/Lines' )
const LineTypes = require( './lib/models/LineTypes' )
const Raags = require( './lib/models/Raags' )
const Sections = require( './lib/models/Sections' )
const Subsections = require( './lib/models/Subsections' )
const Shabads = require( './lib/models/Shabads' )
const ShabadTypes = require( './lib/models/ShabadTypes' )
const Sources = require( './lib/models/Sources' )
const Writers = require( './lib/models/Writers' )
const Translations = require( './lib/models/Translations' )
const TranslationSources = require( './lib/models/TranslationSources' )
const Languages = require( './lib/models/Languages' )

module.exports = {
Banis,
Languages,
Lines,
LineTypes,
Raags,
Translations,
TranslationSources,
Sections,
Subsections,
Shabads,
ShabadTypes,
Sources,
Writers,
knex,
Expand Down
2 changes: 1 addition & 1 deletion lib/models/Banis.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ class Banis extends BaseModel {
to: 'Lines.id',
},
// eslint-disable-next-line
modelClass: require( './Lines' )
modelClass: require( './Lines' ),
},
}
}
Expand Down
30 changes: 30 additions & 0 deletions lib/models/Languages.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/**
* Objection Model for Languages.
* @ignore
*/

const { Model } = require( 'objection' )

const BaseModel = require( './BaseModel' )

class Languages extends BaseModel {
static get tableName() {
return 'Languages'
}

static get relationMappings() {
return {
translationSources: {
relation: Model.HasManyRelation,
join: {
from: 'Languages.id',
to: 'Translation_Source.language_id',
},
// eslint-disable-next-line
modelClass: require( './Lines' ),
},
}
}
}

module.exports = Languages
13 changes: 11 additions & 2 deletions lib/models/Lines.js
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@ class Lines extends BaseModel {
to: 'Line_Types.id',
},
// eslint-disable-next-line
modelClass: require( './LineTypes' )
modelClass: require( './LineTypes' ),
},
shabad: {
relation: Model.BelongsToOneRelation,
Expand All @@ -83,7 +83,16 @@ class Lines extends BaseModel {
to: 'Shabads.id',
},
// eslint-disable-next-line
modelClass: require( './Shabads' )
modelClass: require( './Shabads' ),
},
translations: {
relation: Model.HasManyRelation,
join: {
from: 'Lines.id',
to: 'Translations.line_id',
},
// eslint-disable-next-line
modelClass: require( './Translations' ),
},
}
}
Expand Down
39 changes: 39 additions & 0 deletions lib/models/Sections.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/**
* Objection Model for Sections.
* @ignore
*/

const { Model } = require( 'objection' )

const BaseModel = require( './BaseModel' )

class Sections extends BaseModel {
static get tableName() {
return 'Sections'
}

static get relationMappings() {
return {
shabads: {
relation: Model.HasManyRelation,
join: {
from: 'Sections.id',
to: 'Shabads.section_id',
},
// eslint-disable-next-line
modelClass: require( './Shabads' ),
},
subsections: {
relation: Model.HasManyRelation,
join: {
from: 'Sections.subsection_id',
to: 'Subsections.id',
},
// eslint-disable-next-line
modelClass: require( './Subsections' ),
},
}
}
}

module.exports = Sections
28 changes: 14 additions & 14 deletions lib/models/Shabads.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,34 +21,34 @@ class Shabads extends BaseModel {
to: 'Writers.id',
},
// eslint-disable-next-line
modelClass: require( './Writers' )
modelClass: require( './Writers' ),
},
raag: {
section: {
relation: Model.HasOneRelation,
join: {
from: 'Shabads.raag_id',
to: 'Raags.id',
from: 'Shabads.section_id',
to: 'Sections.id',
},
// eslint-disable-next-line
modelClass: require( './Raags' )
modelClass: require( './Sections' ),
},
source: {
subsection: {
relation: Model.HasOneRelation,
join: {
from: 'Shabads.source_id',
to: 'Sources.id',
from: 'Shabads.subsection_id',
to: 'Subsections.id',
},
// eslint-disable-next-line
modelClass: require( './Sources' )
modelClass: require( './Subsections' ),
},
type: {
source: {
relation: Model.HasOneRelation,
join: {
from: 'Shabads.type_id',
to: 'Shabad_Types.id',
from: 'Shabads.source_id',
to: 'Sources.id',
},
// eslint-disable-next-line
modelClass: require( './ShabadTypes' )
modelClass: require( './Sources' ),
},
lines: {
relation: Model.HasManyRelation,
Expand All @@ -57,7 +57,7 @@ class Shabads extends BaseModel {
to: 'Lines.shabad_id',
},
// eslint-disable-next-line
modelClass: require( './Lines' )
modelClass: require( './Lines' ),
},
}
}
Expand Down
11 changes: 10 additions & 1 deletion lib/models/Sources.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,16 @@ class Sources extends BaseModel {
to: 'Shabads.source_id',
},
// eslint-disable-next-line
modelClass: require( './Shabads' )
modelClass: require( './Shabads' ),
},
translationSources: {
relation: Model.HasManyRelation,
join: {
from: 'Sources.id',
to: 'Translation_Sources.source_id',
},
// eslint-disable-next-line
modelClass: require( './TranslationSources' ),
},
}
}
Expand Down
39 changes: 39 additions & 0 deletions lib/models/Subsections.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/**
* Objection Model for Subsections.
* @ignore
*/

const { Model } = require( 'objection' )

const BaseModel = require( './BaseModel' )

class Subsections extends BaseModel {
static get tableName() {
return 'Subsections'
}

static get relationMappings() {
return {
shabads: {
relation: Model.HasManyRelation,
join: {
from: 'Subsections.id',
to: 'Shabads.subsection_id',
},
// eslint-disable-next-line
modelClass: require( './Shabads' )
},
section: {
relation: Model.BelongsToOneRelation,
join: {
from: 'Subsections.section_id',
to: 'Sections.id',
},
// eslint-disable-next-line
modelClass: require( './Sections' )
},
}
}
}

module.exports = Subsections
48 changes: 48 additions & 0 deletions lib/models/TranslationSources.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
/**
* Objection Model for Translation Sources.
* @ignore
*/

const { Model } = require( 'objection' )

const BaseModel = require( './BaseModel' )

class TranslationSources extends BaseModel {
static get tableName() {
return 'Translation_Sources'
}

static get relationMappings() {
return {
source: {
relation: Model.BelongsToOneRelation,
join: {
from: 'Translation_Sources.source_id',
to: 'Sources.id',
},
// eslint-disable-next-line
modelClass: require( './Sources' ),
},
translations: {
relation: Model.HasManyRelation,
join: {
from: 'Translation_Sources.id',
to: 'Translations.translation_source_id',
},
// eslint-disable-next-line
modelClass: require( './Translations' ),
},
language: {
relation: Model.HasOneRelation,
join: {
from: 'Translation_Sources.langauge_id',
to: 'Languages.id',
},
// eslint-disable-next-line
modelClass: require( './Languages' ),
},
}
}
}

module.exports = TranslationSources
39 changes: 39 additions & 0 deletions lib/models/Translations.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
/**
* Objection Model for Translations.
* @ignore
*/

const { Model } = require( 'objection' )

const BaseModel = require( './BaseModel' )

class Translations extends BaseModel {
static get tableName() {
return 'Translations'
}

static get relationMappings() {
return {
lines: {
relation: Model.BelongsToOneRelation,
join: {
from: 'Translations.line_id',
to: 'Lines.id',
},
// eslint-disable-next-line
modelClass: require( './Lines' ),
},
translationSource: {
relation: Model.BelongsToOneRelation,
join: {
from: 'Translations.translation_source_id',
to: 'Translation_Sources.id',
},
// eslint-disable-next-line
modelClass: require( './TranslationSources' ),
},
}
}
}

module.exports = Translations
2 changes: 1 addition & 1 deletion lib/models/Writers.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ class Writers extends BaseModel {
to: 'Shabads.writer_id',
},
// eslint-disable-next-line
modelClass: require( './Shabads' )
modelClass: require( './Shabads' ),
},
}
}
Expand Down
2 changes: 1 addition & 1 deletion migrations/schema.js
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ exports.up = knex =>
table.integer( 'line_id' ).references( 'id' ).inTable( 'lines' )
table.integer( 'bani_id' ).references( 'id' ).inTable( 'banis' )
table.integer( 'line_group' ).notNullable()
table.primary( [ 'line_id', 'bani_id', 'line_group' ] )
table.primary( [ 'bani_id', 'line_group' ] ) // TODO: Double check
} ),
] )

Expand Down
Binary file modified schema.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit cd28c7d

Please sign in to comment.