Skip to content

Commit

Permalink
update surveydetails is refactored (#327)
Browse files Browse the repository at this point in the history
  • Loading branch information
anissa-agahchen authored May 26, 2021
1 parent be1abb4 commit 31cc430
Show file tree
Hide file tree
Showing 27 changed files with 1,244 additions and 619 deletions.
86 changes: 44 additions & 42 deletions api/src/models/survey-update.test.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { expect } from 'chai';
import { describe } from 'mocha';
import { PutSurveyData } from './survey-update';
import { PutSurveyDetailsData } from './survey-update';

describe('PutSurveyData', () => {
describe('No values provided', () => {
let data: PutSurveyData;
let data: PutSurveyDetailsData;

before(() => {
data = new PutSurveyData(null);
data = new PutSurveyDetailsData(null);
});

it('sets name', () => {
Expand Down Expand Up @@ -56,84 +56,86 @@ describe('PutSurveyData', () => {
});

describe('All values provided', () => {
let data: PutSurveyData;
let data: PutSurveyDetailsData;

const surveyData = {
survey_name: 'survey name',
survey_purpose: 'survey purpose',
focal_species: [1, 2],
ancillary_species: [3, 4],
start_date: '2020/04/04',
end_date: '2020/05/05',
biologist_first_name: 'first',
biologist_last_name: 'last',
survey_area_name: 'survey area name',
geometry: [
{
type: 'Polygon',
coordinates: [
[
[-128, 55],
[-128, 55.5],
[-128, 56],
[-126, 58],
[-128, 55]
]
],
properties: {
name: 'Biohub Islands'
survey_details: {
survey_name: 'survey name',
survey_purpose: 'survey purpose',
focal_species: [1, 2],
ancillary_species: [3, 4],
start_date: '2020/04/04',
end_date: '2020/05/05',
biologist_first_name: 'first',
biologist_last_name: 'last',
survey_area_name: 'survey area name',
geometry: [
{
type: 'Polygon',
coordinates: [
[
[-128, 55],
[-128, 55.5],
[-128, 56],
[-126, 58],
[-128, 55]
]
],
properties: {
name: 'Biohub Islands'
}
}
}
],
revision_count: 1
],
revision_count: 1
}
};

before(() => {
data = new PutSurveyData(surveyData);
data = new PutSurveyDetailsData(surveyData);
});

it('sets name', () => {
expect(data.name).to.equal(surveyData.survey_name);
expect(data.name).to.equal(surveyData.survey_details.survey_name);
});

it('sets objectives', () => {
expect(data.objectives).to.equal(surveyData.survey_purpose);
expect(data.objectives).to.equal(surveyData.survey_details.survey_purpose);
});

it('sets focal_species', () => {
expect(data.focal_species).to.eql(surveyData.focal_species);
expect(data.focal_species).to.eql(surveyData.survey_details.focal_species);
});

it('sets ancillary_species', () => {
expect(data.ancillary_species).to.eql(surveyData.ancillary_species);
expect(data.ancillary_species).to.eql(surveyData.survey_details.ancillary_species);
});

it('sets start_date', () => {
expect(data.start_date).to.equal(surveyData.start_date);
expect(data.start_date).to.equal(surveyData.survey_details.start_date);
});

it('sets end_date', () => {
expect(data.end_date).to.equal(surveyData.end_date);
expect(data.end_date).to.equal(surveyData.survey_details.end_date);
});

it('sets lead_first_name', () => {
expect(data.lead_first_name).to.equal(surveyData.biologist_first_name);
expect(data.lead_first_name).to.equal(surveyData.survey_details.biologist_first_name);
});

it('sets lead_last_name', () => {
expect(data.lead_last_name).to.equal(surveyData.biologist_last_name);
expect(data.lead_last_name).to.equal(surveyData.survey_details.biologist_last_name);
});

it('sets geometry', () => {
expect(data.geometry).to.eql(surveyData.geometry);
expect(data.geometry).to.eql(surveyData.survey_details.geometry);
});

it('sets location_name', () => {
expect(data.location_name).to.equal(surveyData.survey_area_name);
expect(data.location_name).to.equal(surveyData.survey_details.survey_area_name);
});

it('sets revision_count', () => {
expect(data.revision_count).to.equal(surveyData.revision_count);
expect(data.revision_count).to.equal(surveyData.survey_details.revision_count);
});
});
});
62 changes: 48 additions & 14 deletions api/src/models/survey-update.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ const defaultLog = getLogger('models/survey-update');
* Pre-processes PUT /project/{projectId}/survey/{surveyId} survey data for update
*
* @export
* @class PutSurveyData
* @class PutSurveyDetailsData
*/
export class PutSurveyData {
export class PutSurveyDetailsData {
name: string;
objectives: string;
focal_species: number[];
Expand All @@ -23,18 +23,52 @@ export class PutSurveyData {
revision_count: number;

constructor(obj?: any) {
defaultLog.debug({ label: 'PutSurveyData', message: 'params', obj });
defaultLog.debug({ label: 'PutSurveyDetailsData', message: 'params', obj });

this.name = obj?.survey_name || null;
this.objectives = obj?.survey_purpose || null;
this.focal_species = (obj?.focal_species?.length && obj.focal_species) || [];
this.ancillary_species = (obj?.ancillary_species?.length && obj.ancillary_species) || [];
this.start_date = obj?.start_date || null;
this.end_date = obj?.end_date || null;
this.lead_first_name = obj?.biologist_first_name || null;
this.lead_last_name = obj?.biologist_last_name || null;
this.location_name = obj?.survey_area_name || null;
this.geometry = obj?.geometry || null;
this.revision_count = obj?.revision_count ?? null;
this.name = obj?.survey_details?.survey_name || null;
this.objectives = obj?.survey_details?.survey_purpose || null;
this.focal_species = (obj?.survey_details?.focal_species?.length && obj.survey_details?.focal_species) || [];
this.ancillary_species =
(obj?.survey_details?.ancillary_species?.length && obj.survey_details?.ancillary_species) || [];
this.start_date = obj?.survey_details?.start_date || null;
this.end_date = obj?.survey_details?.end_date || null;
this.lead_first_name = obj?.survey_details?.biologist_first_name || null;
this.lead_last_name = obj?.survey_details?.biologist_last_name || null;
this.location_name = obj?.survey_details?.survey_area_name || null;
this.geometry = obj?.survey_details?.geometry || null;
this.revision_count = obj?.survey_details?.revision_count ?? null;
}
}

/**
* Pre-processes PUT /project/{projectId}/survey/{surveyId} survey proprietor data for update
*
* @export
* @class PutSurveyProprietorData
*/
export class PutSurveyProprietorData {
isProprietary: boolean;
id: number;
prt_id: number;
s_id: number;
fn_id: number;
rationale: string;
proprietor_name: string;
disa_required: boolean;
revision_count: number;

constructor(surveyId: number, obj?: any) {
defaultLog.debug({ label: 'PutSurveyProprietorData', message: 'params', surveyId, obj });

this.isProprietary = obj?.survey_proprietor?.isProprietary === 'true' || false;
this.id = obj?.survey_proprietor?.id ?? null;
this.prt_id = obj?.survey_proprietor?.proprietary_data_category ?? null;
this.s_id = surveyId;
this.fn_id = obj?.survey_proprietor?.first_nations_id ?? null;
this.rationale = obj?.survey_proprietor?.category_rationale ?? null;
this.proprietor_name =
(!obj?.survey_proprietor?.first_nations_id && obj?.survey_proprietor?.proprietor_name) || null;
this.disa_required = obj?.survey_proprietor?.data_sharing_agreement_required === 'true' || false;
this.revision_count = obj?.survey_proprietor?.revision_count ?? null;
}
}
82 changes: 74 additions & 8 deletions api/src/models/survey-view-update.test.ts
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { expect } from 'chai';
import { describe } from 'mocha';
import { GetSurveyData } from './survey-view-update';
import { GetSurveyDetailsData, GetSurveyProprietorData } from './survey-view-update';

describe('GetSurveyData', () => {
describe('GetSurveyDetailsData', () => {
describe('No values provided', () => {
let data: GetSurveyData;
let data: GetSurveyDetailsData;

before(() => {
data = new GetSurveyData(null);
data = new GetSurveyDetailsData(null);
});

it('sets survey_name', () => {
Expand Down Expand Up @@ -52,7 +52,7 @@ describe('GetSurveyData', () => {
});

describe('all values provided with species as strings', () => {
let data: GetSurveyData;
let data: GetSurveyDetailsData;

const surveyData = [
{
Expand All @@ -73,7 +73,7 @@ describe('GetSurveyData', () => {
];

before(() => {
data = new GetSurveyData(surveyData);
data = new GetSurveyDetailsData(surveyData);
});

it('sets survey_name', () => {
Expand Down Expand Up @@ -122,7 +122,7 @@ describe('GetSurveyData', () => {
});

describe('all values provided with species as strings', () => {
let data: GetSurveyData;
let data: GetSurveyDetailsData;

const surveyData = [
{
Expand All @@ -143,7 +143,7 @@ describe('GetSurveyData', () => {
];

before(() => {
data = new GetSurveyData(surveyData);
data = new GetSurveyDetailsData(surveyData);
});

it('sets survey_name', () => {
Expand Down Expand Up @@ -191,3 +191,69 @@ describe('GetSurveyData', () => {
});
});
});

describe('GetSurveyProprietorData', () => {
describe('No values provided', () => {
let data: GetSurveyProprietorData;

before(() => {
data = new GetSurveyProprietorData(null);
});

it('sets proprietor_type_name', () => {
expect(data.proprietary_data_category_name).to.equal('');
});

it('sets first_nations_name', () => {
expect(data.first_nations_name).to.equal('');
});

it('sets category_rationale', () => {
expect(data.category_rationale).to.equal('');
});

it('sets proprietor_name', () => {
expect(data.proprietor_name).to.equal('');
});

it('sets data_sharing_agreement_required', () => {
expect(data.data_sharing_agreement_required).to.equal('false');
});
});

describe('All values provided', () => {
let data: GetSurveyProprietorData;

const proprietorData = {
proprietor_type_name: 'type',
first_nations_name: 'fn name',
category_rationale: 'rationale',
proprietor_name: 'name',
disa_required: true
};

before(() => {
data = new GetSurveyProprietorData(proprietorData);
});

it('sets proprietary_data_category_name', () => {
expect(data.proprietary_data_category_name).to.equal(proprietorData.proprietor_type_name);
});

it('sets first_nations_name', () => {
expect(data.first_nations_name).to.equal(proprietorData.first_nations_name);
});

it('sets category_rationale', () => {
expect(data.category_rationale).to.equal(proprietorData.category_rationale);
});

it('sets proprietor_name', () => {
expect(data.proprietor_name).to.equal(proprietorData.proprietor_name);
});

it('sets data_sharing_agreement_required', () => {
expect(data.data_sharing_agreement_required).to.equal('true');
});
});
});
Loading

0 comments on commit 31cc430

Please sign in to comment.