diff --git a/README.md b/README.md index 5ed2d830..55779212 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,10 @@ If you want to alter, drop or add a column or add a foriegn key or anything with npx sequelize-cli migration:generate --name +#### Seed database + +npx sequelize-cli db:seed:all + ##### Recommendations Models are not currently being added to our folder structure because sequelize can handle it. So for now. simply copy and paste the model into the appropriate folder diff --git a/migrations/20211201194652-create-unit.cjs b/migrations/20211201194652-create-unit.cjs index 45be997c..28722d54 100644 --- a/migrations/20211201194652-create-unit.cjs +++ b/migrations/20211201194652-create-unit.cjs @@ -11,6 +11,9 @@ module.exports = { uuid: { type: Sequelize.STRING, }, + ProjectId: { + type: Sequelize.STRING, + }, owner: { type: Sequelize.STRING, }, diff --git a/migrations/20211201195550-create-project.cjs b/migrations/20211201195550-create-project.cjs index e44c8d8d..bbdb158e 100644 --- a/migrations/20211201195550-create-project.cjs +++ b/migrations/20211201195550-create-project.cjs @@ -8,7 +8,10 @@ module.exports = { primaryKey: true, type: Sequelize.INTEGER, }, - uuid: { + warehouseProjectId: { + type: Sequelize.STRING, + }, + projectID: { type: Sequelize.STRING, }, currentRegistry: { @@ -18,14 +21,11 @@ module.exports = { type: Sequelize.STRING, }, originProjectId: { - type: Sequelize.NUMBER, + type: Sequelize.STRING, }, program: { type: Sequelize.STRING, }, - warehouseProjectId: { - type: Sequelize.NUMBER, - }, projectName: { type: Sequelize.STRING, }, @@ -42,7 +42,7 @@ module.exports = { type: Sequelize.STRING, }, coveredByNDC: { - type: Sequelize.STRING, + type: Sequelize.INTEGER, }, NDCLinkage: { type: Sequelize.STRING, @@ -60,7 +60,7 @@ module.exports = { type: Sequelize.STRING, }, methodologyVersion: { - type: Sequelize.STRING, + type: Sequelize.NUMBER, }, validationApproach: { type: Sequelize.STRING, @@ -71,7 +71,7 @@ module.exports = { projectTag: { type: Sequelize.STRING, }, - estimatedAnnualAverageEmmisionReduction: { + estimatedAnnualAverageEmissionReduction: { type: Sequelize.STRING, }, owner: { diff --git a/package-lock.json b/package-lock.json index 70b03497..6a0ec8d0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "hasInstallScript": true, "dependencies": { "body-parser": "^1.19.0", + "cors": "^2.8.5", "debug": "~2.6.9", "express": "~4.16.1", "express-joi-validation": "^5.0.0", @@ -4631,6 +4632,18 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "node_modules/cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "dependencies": { + "object-assign": "^4", + "vary": "^1" + }, + "engines": { + "node": ">= 0.10" + } + }, "node_modules/cosmiconfig": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", @@ -16665,6 +16678,15 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "cosmiconfig": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", diff --git a/package.json b/package.json index 2689ec2d..40a5c1ad 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ }, "dependencies": { "body-parser": "^1.19.0", + "cors": "^2.8.5", "debug": "~2.6.9", "express": "~4.16.1", "express-joi-validation": "^5.0.0", diff --git a/seeders/20211209204301-add-projects.cjs b/seeders/20211209204301-add-projects.cjs new file mode 100644 index 00000000..5d40dd15 --- /dev/null +++ b/seeders/20211209204301-add-projects.cjs @@ -0,0 +1,10 @@ +'use strict'; +const ProjectStub = require('../src/models/projects/projects.stub.json'); + +module.exports = { + up: async (queryInterface) => + queryInterface.bulkInsert('Projects', ProjectStub, {}), + down: async (queryInterface) => { + await queryInterface.bulkDelete('Projects'); + }, +}; diff --git a/seeders/20211209205139-add-units.cjs b/seeders/20211209205139-add-units.cjs new file mode 100644 index 00000000..8991671e --- /dev/null +++ b/seeders/20211209205139-add-units.cjs @@ -0,0 +1,10 @@ +'use strict'; +const UnitStub = require('../src/models/units/units.stub.json'); + +module.exports = { + up: async (queryInterface) => + queryInterface.bulkInsert('Units', UnitStub, {}), + down: async (queryInterface) => { + await queryInterface.bulkDelete('Units'); + }, +}; diff --git a/src/controllers/project.controller.js b/src/controllers/project.controller.js index a80235a5..c1c3e40d 100644 --- a/src/controllers/project.controller.js +++ b/src/controllers/project.controller.js @@ -1,5 +1,5 @@ import { uuid as uuidv4 } from 'uuidv4'; -import { Staging, ProjectMock } from '../models'; +import { Staging, ProjectMock, Project } from '../models'; export const create = async (req, res) => { // When creating new projects assign a uuid to is so @@ -13,7 +13,7 @@ export const create = async (req, res) => { table: 'Projects', data: JSON.stringify(req.body), }); - res.json('Success'); + res.json('Added project to stage'); } catch (err) { res.json(err); } @@ -25,9 +25,7 @@ export const findAll = async (req, res) => { return; } - res.json({ - message: 'Not Yet Implemented', - }); + res.json(await Project.findAll()); }; export const findOne = (req, res) => { @@ -49,28 +47,31 @@ export const findOne = (req, res) => { export const update = (req, res) => { const stagedData = { - uuid: req.body.uuid, + uuid: req.body.warehouseProjectId, action: 'UPDATE', table: 'Projects', data: JSON.stringify(req.body), }; + console.log(stagedData); + Staging.create(stagedData) .then(() => res.json({ - message: 'Project created successfully', + message: 'Project update added to staging', }), ) - .catch(() => + .catch((err) => res.json({ - message: 'Error creating new project', + message: 'Error adding update to stage', + error: err, }), ); }; export const destroy = (req, res) => { const stagedData = { - uuid: req.body.uuid, + uuid: req.body.warehouseProjectId, action: 'DELETE', table: 'Projects', }; @@ -78,12 +79,12 @@ export const destroy = (req, res) => { Staging.create(stagedData) .then(() => res.json({ - message: 'Project created successfully', + message: 'Project removal added to stage', }), ) .catch(() => res.json({ - message: 'Error creating new project', + message: 'Error adding project removal to stage', }), ); }; diff --git a/src/controllers/staging.controller.js b/src/controllers/staging.controller.js index f7158be0..ac6335a5 100644 --- a/src/controllers/staging.controller.js +++ b/src/controllers/staging.controller.js @@ -1,4 +1,3 @@ -import { Staging, StagingMock } from '../models'; import _ from 'lodash'; import { Staging, StagingMock, Project, Unit } from '../models'; @@ -20,10 +19,19 @@ export const findAll = async (req, res) => { } if (workingData.action === 'UPDATE') { - const Model = workingData.table === 'Projects' ? Project : Unit; - const original = await Model.findOne({ - where: { uuid: workingData.uuid }, - }); + let original; + if (workingData.table === 'Projects') { + original = await Project.findOne({ + where: { warehouseProjectId: workingData.uuid }, + }); + } + + if (workingData.table === 'Units') { + original = await Unit.findOne({ + where: { uuid: workingData.uuid }, + }); + } + workingData.diff.original = original; workingData.diff.change = JSON.parse(workingData.data); } @@ -50,7 +58,7 @@ export const destroy = (req, res) => { }) .then(() => { res.json({ - message: 'Deleted', + message: 'Deleted from stage', }); }) .catch((err) => { diff --git a/src/controllers/units.controller.js b/src/controllers/units.controller.js index 630dee28..f2a660a7 100644 --- a/src/controllers/units.controller.js +++ b/src/controllers/units.controller.js @@ -1,5 +1,5 @@ import { uuid as uuidv4 } from 'uuidv4'; -import { Staging, UnitMock } from '../models'; +import { Staging, UnitMock, Unit } from '../models'; export const create = (req, res) => { // When creating new projects assign a uuid to is so @@ -31,9 +31,7 @@ export const findAll = async (req, res) => { return; } - res.json({ - message: 'Not Yet Implemented', - }); + res.json(await Unit.findAll()); }; export const findOne = (req, res) => { diff --git a/src/models/projects/projects.model.js b/src/models/projects/projects.model.js index 6e2a43aa..0ec2bc45 100644 --- a/src/models/projects/projects.model.js +++ b/src/models/projects/projects.model.js @@ -27,28 +27,28 @@ Project.init( type: Sequelize.NUMBER, primaryKey: true, }, - uuid: Sequelize.STRING, + warehouseProjectId: Sequelize.STRING, + projectID: Sequelize.STRING, currentRegistry: Sequelize.STRING, registryOfOrigin: Sequelize.STRING, - originProjectId: Sequelize.NUMBER, + originProjectId: Sequelize.STRING, program: Sequelize.STRING, - warehouseProjectId: Sequelize.NUMBER, projectName: Sequelize.STRING, projectLink: Sequelize.STRING, projectDeveloper: Sequelize.STRING, sector: Sequelize.STRING, projectType: Sequelize.STRING, - coveredByNDC: Sequelize.STRING, + coveredByNDC: Sequelize.INTEGER, NDCLinkage: Sequelize.STRING, projectStatus: Sequelize.STRING, projectStatusDate: Sequelize.DATE, unitMetric: Sequelize.STRING, methodology: Sequelize.STRING, - methodologyVersion: Sequelize.STRING, + methodologyVersion: Sequelize.NUMBER, validationApproach: Sequelize.STRING, validationDate: Sequelize.DATE, projectTag: Sequelize.STRING, - estimatedAnnualAverageEmmisionReduction: Sequelize.STRING, + estimatedAnnualAverageEmissionReduction: Sequelize.STRING, owner: Sequelize.STRING, createdAt: Sequelize.DATE, updatedAt: Sequelize.DATE, diff --git a/src/models/projects/projects.stub.json b/src/models/projects/projects.stub.json index fc086533..5aa4fffb 100644 --- a/src/models/projects/projects.stub.json +++ b/src/models/projects/projects.stub.json @@ -1,28 +1,4 @@ [ - { - "warehouseProjectId": "a90f9685-e4e6-4762-803d-24bc43652bdd", - "currentRegistry": "Topicstorm", - "registryOfOrigin": "Brainsphere", - "originProjectID": "fe3a802c-f473-48a2-babf-5305df561670", - "program": "Kwimbee", - "projectID": "6e1f5489-3205-4def-bb16-ab19cdbcf519", - "projectName": "Oloo", - "projectLink": "http://yellowpages.com/mauris/vulputate.png?quis=posuere&justo=cubilia&maecenas=curae&rhoncus=mauris&aliquam=viverra&lacus=diam&morbi=vitae&quis=quam&tortor=suspendisse&id=potenti&nulla=nullam&ultrices=porttitor&aliquet=lacus&maecenas=at&leo=turpis&odio=donec&condimentum=posuere&id=metus&luctus=vitae&nec=ipsum&molestie=aliquam&sed=non&justo=mauris&pellentesque=morbi&viverra=non&pede=lectus&ac=aliquam&diam=sit&cras=amet&pellentesque=diam&volutpat=in&dui=magna&maecenas=bibendum", - "projectDeveloper": "Cogidoo", - "sector": "Skiba", - "projectType": "Gabvine", - "coveredByNDC": true, - "ndcLinkage": "Shufflester", - "projectStatus": "in hac habitasse platea dictumst aliquam augue quam sollicitudin vitae consectetuer eget rutrum at lorem integer tincidunt ante vel ipsum", - "projectStatusDate": "12/19/2020", - "unitMetric": "Pink", - "methodology": "Innojam", - "methodologyVersion": 33, - "validationApproach": "cursus id turpis integer aliquet massa id lobortis convallis tortor risus", - "validationDate": "4/27/2021", - "estimatedAnnualAverageEmissionReduction": 25, - "projectTag": "Skinder" - }, { "warehouseProjectId": "81e05bfa-e93f-458f-b907-96bf170e52cd", "currentRegistry": "Feedfire", @@ -35,7 +11,7 @@ "projectDeveloper": "Cogibox", "sector": "Viva", "projectType": "Topicshots", - "coveredByNDC": false, + "coveredByNDC": 0, "ndcLinkage": "Shuffletag", "projectStatus": "in magna bibendum imperdiet nullam orci pede venenatis non sodales sed tincidunt eu felis fusce posuere felis sed lacus", "projectStatusDate": "8/23/2021", @@ -45,678 +21,164 @@ "validationApproach": "consectetuer eget rutrum at lorem integer tincidunt ante vel ipsum praesent blandit lacinia erat", "validationDate": "11/22/2021", "estimatedAnnualAverageEmissionReduction": 60, - "projectTag": "Kaymbo" - }, - { - "warehouseProjectId": "7c0c2510-726e-4dc9-8267-c46b7f9080e9", - "currentRegistry": "Tagtune", - "registryOfOrigin": "Trudeo", - "originProjectID": "1555c077-0543-48ef-a9b5-bd0447f1e858", - "program": "Livetube", - "projectID": "189b0e35-6b4a-44c4-96f2-d3e9f835c37d", - "projectName": "Buzzster", - "projectLink": "https://alibaba.com/curae/donec/pharetra/magna/vestibulum.png?ligula=sed&suspendisse=magna&ornare=at&consequat=nunc&lectus=commodo&in=placerat&est=praesent&risus=blandit&auctor=nam&sed=nulla&tristique=integer&in=pede&tempus=justo&sit=lacinia&amet=eget&sem=tincidunt&fusce=eget&consequat=tempus&nulla=vel&nisl=pede&nunc=morbi&nisl=porttitor&duis=lorem&bibendum=id&felis=ligula&sed=suspendisse&interdum=ornare&venenatis=consequat&turpis=lectus&enim=in&blandit=est&mi=risus&in=auctor&porttitor=sed&pede=tristique&justo=in&eu=tempus", - "projectDeveloper": "Vipe", - "sector": "Livetube", - "projectType": "Gigabox", - "coveredByNDC": false, - "ndcLinkage": "Vinte", - "projectStatus": "aliquam quis turpis eget elit sodales scelerisque mauris sit amet", - "projectStatusDate": "12/1/2021", - "unitMetric": "Crimson", - "methodology": "Twitterworks", - "methodologyVersion": 82, - "validationApproach": "ut odio cras mi pede malesuada in imperdiet et commodo vulputate", - "validationDate": "8/31/2021", - "estimatedAnnualAverageEmissionReduction": 85, - "projectTag": "Zooxo" - }, - { - "warehouseProjectId": "4f9f96da-24a4-4038-a99b-aaea18d4a7d3", - "currentRegistry": "Kazio", - "registryOfOrigin": "Fliptune", - "originProjectID": "5dec1804-d2f9-460a-84b1-e21855347ba5", - "program": "Skivee", - "projectID": "c2c294ff-4bd1-42bc-8145-8074e809e27b", - "projectName": "Quimm", - "projectLink": "https://forbes.com/ultrices/enim.aspx?duis=lectus&consequat=pellentesque&dui=at&nec=nulla&nisi=suspendisse&volutpat=potenti&eleifend=cras&donec=in&ut=purus&dolor=eu&morbi=magna&vel=vulputate&lectus=luctus&in=cum&quam=sociis&fringilla=natoque&rhoncus=penatibus&mauris=et&enim=magnis&leo=dis&rhoncus=parturient&sed=montes&vestibulum=nascetur&sit=ridiculus&amet=mus&cursus=vivamus&id=vestibulum&turpis=sagittis&integer=sapien&aliquet=cum&massa=sociis&id=natoque&lobortis=penatibus&convallis=et&tortor=magnis&risus=dis&dapibus=parturient&augue=montes&vel=nascetur&accumsan=ridiculus&tellus=mus&nisi=etiam&eu=vel&orci=augue&mauris=vestibulum&lacinia=rutrum&sapien=rutrum&quis=neque&libero=aenean&nullam=auctor&sit=gravida&amet=sem&turpis=praesent&elementum=id&ligula=massa&vehicula=id&consequat=nisl&morbi=venenatis", - "projectDeveloper": "Fivechat", - "sector": "Pixope", - "projectType": "Zoomzone", - "coveredByNDC": false, - "ndcLinkage": "Rooxo", - "projectStatus": "sapien quis libero nullam sit amet turpis elementum ligula vehicula consequat morbi a ipsum", - "projectStatusDate": "5/5/2021", - "unitMetric": "Khaki", - "methodology": "Kimia", - "methodologyVersion": 74, - "validationApproach": "in faucibus orci luctus et ultrices posuere cubilia curae duis faucibus accumsan odio curabitur convallis duis", - "validationDate": "2/21/2021", - "estimatedAnnualAverageEmissionReduction": 81, - "projectTag": "Plajo" - }, - { - "warehouseProjectId": "4b12c858-1252-4a67-9e3a-226a41925e13", - "currentRegistry": "Skinix", - "registryOfOrigin": "Wordpedia", - "originProjectID": "939e7d89-a404-4b16-b808-ab71da697556", - "program": "Gabspot", - "projectID": "b3667e36-6d26-4a67-b2e5-74d5b2a20223", - "projectName": "Demivee", - "projectLink": "https://hao123.com/erat/eros/viverra/eget/congue.html?magna=leo&at=odio&nunc=condimentum&commodo=id&placerat=luctus&praesent=nec&blandit=molestie&nam=sed&nulla=justo&integer=pellentesque&pede=viverra&justo=pede&lacinia=ac&eget=diam&tincidunt=cras&eget=pellentesque&tempus=volutpat&vel=dui&pede=maecenas&morbi=tristique&porttitor=est&lorem=et&id=tempus&ligula=semper&suspendisse=est&ornare=quam&consequat=pharetra&lectus=magna&in=ac&est=consequat&risus=metus&auctor=sapien&sed=ut&tristique=nunc&in=vestibulum&tempus=ante&sit=ipsum&amet=primis&sem=in&fusce=faucibus&consequat=orci&nulla=luctus&nisl=et&nunc=ultrices&nisl=posuere&duis=cubilia&bibendum=curae&felis=mauris&sed=viverra&interdum=diam&venenatis=vitae&turpis=quam&enim=suspendisse&blandit=potenti&mi=nullam&in=porttitor&porttitor=lacus&pede=at&justo=turpis&eu=donec&massa=posuere", - "projectDeveloper": "Twinder", - "sector": "Kaymbo", - "projectType": "Quinu", - "coveredByNDC": true, - "ndcLinkage": "Youbridge", - "projectStatus": "tellus in sagittis dui vel nisl duis ac nibh fusce lacus purus aliquet at feugiat non pretium", - "projectStatusDate": "7/30/2021", - "unitMetric": "Goldenrod", - "methodology": "Dynava", - "methodologyVersion": 60, - "validationApproach": "aliquam convallis nunc proin at turpis a pede posuere nonummy", - "validationDate": "2/13/2021", - "estimatedAnnualAverageEmissionReduction": 57, - "projectTag": "Kwimbee" - }, - { - "warehouseProjectId": "0b5d8892-b48d-4b35-ac27-dba714208cc1", - "currentRegistry": "Layo", - "registryOfOrigin": "Zooxo", - "originProjectID": "f5f5e11f-1712-480b-a601-25a1d6e6cd0c", - "program": "Yodel", - "projectID": "6c6ce593-98c0-4ab4-a492-78a40453bbb2", - "projectName": "Twinte", - "projectLink": "http://blog.com/ut/odio/cras/mi.jsp?ante=nisi&nulla=volutpat&justo=eleifend&aliquam=donec&quis=ut&turpis=dolor&eget=morbi&elit=vel&sodales=lectus&scelerisque=in&mauris=quam&sit=fringilla&amet=rhoncus&eros=mauris&suspendisse=enim&accumsan=leo&tortor=rhoncus&quis=sed&turpis=vestibulum&sed=sit&ante=amet&vivamus=cursus&tortor=id&duis=turpis&mattis=integer&egestas=aliquet", - "projectDeveloper": "Plambee", - "sector": "Flashpoint", - "projectType": "Tavu", - "coveredByNDC": true, - "ndcLinkage": "Layo", - "projectStatus": "dapibus augue vel accumsan tellus nisi eu orci mauris lacinia sapien quis libero nullam sit amet turpis elementum ligula", - "projectStatusDate": "10/29/2021", - "unitMetric": "Red", - "methodology": "Leexo", - "methodologyVersion": 2, - "validationApproach": "nulla ut erat id mauris vulputate elementum nullam varius nulla facilisi cras non velit nec nisi vulputate", - "validationDate": "8/11/2021", - "estimatedAnnualAverageEmissionReduction": 45, - "projectTag": "Kimia" + "projectTag": "Kaymbo", + "createdAt": "11/22/2021", + "updatedAt": "11/22/2021" }, { - "warehouseProjectId": "6a971e4d-d7ca-4b12-b926-28b1c08b3b75", - "currentRegistry": "Meezzy", - "registryOfOrigin": "Wordware", - "originProjectID": "1a4b83b4-cac3-4c11-bb6a-169cc42fd805", - "program": "Wordify", - "projectID": "5819555d-0a4a-471b-81ed-02c68161408c", - "projectName": "Oyondu", - "projectLink": "https://mac.com/lectus/suspendisse/potenti/in/eleifend/quam/a.json?nibh=felis&quisque=eu&id=sapien&justo=cursus&sit=vestibulum&amet=proin&sapien=eu&dignissim=mi&vestibulum=nulla&vestibulum=ac&ante=enim&ipsum=in&primis=tempor&in=turpis&faucibus=nec&orci=euismod&luctus=scelerisque&et=quam&ultrices=turpis&posuere=adipiscing&cubilia=lorem&curae=vitae&nulla=mattis&dapibus=nibh&dolor=ligula&vel=nec&est=sem&donec=duis&odio=aliquam&justo=convallis&sollicitudin=nunc&ut=proin&suscipit=at&a=turpis&feugiat=a&et=pede&eros=posuere&vestibulum=nonummy&ac=integer&est=non&lacinia=velit&nisi=donec&venenatis=diam&tristique=neque&fusce=vestibulum&congue=eget&diam=vulputate&id=ut&ornare=ultrices&imperdiet=vel&sapien=augue&urna=vestibulum&pretium=ante&nisl=ipsum&ut=primis&volutpat=in&sapien=faucibus&arcu=orci&sed=luctus&augue=et&aliquam=ultrices&erat=posuere&volutpat=cubilia&in=curae&congue=donec&etiam=pharetra&justo=magna&etiam=vestibulum&pretium=aliquet&iaculis=ultrices&justo=erat&in=tortor&hac=sollicitudin&habitasse=mi&platea=sit&dictumst=amet&etiam=lobortis&faucibus=sapien&cursus=sapien&urna=non&ut=mi&tellus=integer&nulla=ac&ut=neque&erat=duis&id=bibendum&mauris=morbi&vulputate=non&elementum=quam&nullam=nec", - "projectDeveloper": "Wordware", - "sector": "Kwinu", - "projectType": "Tagpad", - "coveredByNDC": true, - "ndcLinkage": "Nlounge", - "projectStatus": "ligula in lacus curabitur at ipsum ac tellus semper interdum", - "projectStatusDate": "10/15/2021", - "unitMetric": "Goldenrod", - "methodology": "Divavu", - "methodologyVersion": 23, - "validationApproach": "phasellus in felis donec semper sapien a libero nam dui proin leo odio porttitor id consequat", + "warehouseProjectId": "897891e2-cc66-4867-8da2-c17d69d018cb", + "currentRegistry": "Feedfire", + "registryOfOrigin": "Skinte", + "originProjectID": "c5067a60-e329-4510-991c-b302fd00ec8d", + "program": "Eimbee", + "projectID": "c9d147e2-bc07-4e68-a76d-43424fa8cd4e", + "projectName": "Zoomcast", + "projectLink": "http://dailymotion.com/ligula/suspendisse/ornare/consequat/lectus/in.jpg?aliquam=consequat&lacus=nulla&morbi=nisl&quis=nunc&tortor=nisl&id=duis&nulla=bibendum&ultrices=felis&aliquet=sed&maecenas=interdum&leo=venenatis&odio=turpis&condimentum=enim&id=blandit&luctus=mi&nec=in&molestie=porttitor&sed=pede&justo=justo&pellentesque=eu&viverra=massa&pede=donec&ac=dapibus&diam=duis&cras=at&pellentesque=velit&volutpat=eu&dui=est&maecenas=congue&tristique=elementum&est=in&et=hac&tempus=habitasse&semper=platea&est=dictumst&quam=morbi&pharetra=vestibulum&magna=velit&ac=id&consequat=pretium&metus=iaculis&sapien=diam&ut=erat&nunc=fermentum&vestibulum=justo&ante=nec&ipsum=condimentum", + "projectDeveloper": "Cogibox", + "sector": "Viva", + "projectType": "Topicshots", + "coveredByNDC": 0, + "ndcLinkage": "Shuffletag", + "projectStatus": "in magna bibendum imperdiet nullam orci pede venenatis non sodales sed tincidunt eu felis fusce posuere felis sed lacus", + "projectStatusDate": "8/23/2021", + "unitMetric": "Fuscia", + "methodology": "Quatz", + "methodologyVersion": 43, + "validationApproach": "consectetuer eget rutrum at lorem integer tincidunt ante vel ipsum praesent blandit lacinia erat", "validationDate": "11/22/2021", - "estimatedAnnualAverageEmissionReduction": 13, - "projectTag": "Bluejam" - }, - { - "warehouseProjectId": "8569ef6c-2537-460b-89b7-62bdca31c3cc", - "currentRegistry": "Jatri", - "registryOfOrigin": "Talane", - "originProjectID": "b7bd16e5-f89f-47d0-b00e-106f8ea13033", - "program": "Ozu", - "projectID": "62d7b37a-83cc-474f-98e2-fbb0295302c7", - "projectName": "Brainbox", - "projectLink": "http://jigsy.com/lacus/morbi/sem/mauris/laoreet.xml?eget=sit&eros=amet&elementum=justo&pellentesque=morbi&quisque=ut&porta=odio&volutpat=cras&erat=mi&quisque=pede&erat=malesuada&eros=in&viverra=imperdiet&eget=et&congue=commodo&eget=vulputate&semper=justo&rutrum=in&nulla=blandit&nunc=ultrices&purus=enim&phasellus=lorem&in=ipsum&felis=dolor&donec=sit&semper=amet&sapien=consectetuer&a=adipiscing&libero=elit&nam=proin&dui=interdum&proin=mauris&leo=non&odio=ligula&porttitor=pellentesque&id=ultrices&consequat=phasellus&in=id&consequat=sapien&ut=in&nulla=sapien&sed=iaculis&accumsan=congue&felis=vivamus&ut=metus&at=arcu&dolor=adipiscing&quis=molestie&odio=hendrerit&consequat=at&varius=vulputate&integer=vitae&ac=nisl&leo=aenean&pellentesque=lectus&ultrices=pellentesque&mattis=eget&odio=nunc&donec=donec&vitae=quis&nisi=orci&nam=eget&ultrices=orci&libero=vehicula&non=condimentum&mattis=curabitur&pulvinar=in&nulla=libero&pede=ut&ullamcorper=massa&augue=volutpat&a=convallis&suscipit=morbi", - "projectDeveloper": "Riffwire", - "sector": "Wikido", - "projectType": "Nlounge", - "coveredByNDC": false, - "ndcLinkage": "Abata", - "projectStatus": "erat id mauris vulputate elementum nullam varius nulla facilisi cras non velit nec nisi vulputate nonummy", - "projectStatusDate": "7/14/2021", - "unitMetric": "Pink", - "methodology": "Kwimbee", - "methodologyVersion": 94, - "validationApproach": "elementum nullam varius nulla facilisi cras non velit nec nisi vulputate nonummy maecenas", - "validationDate": "2/12/2021", - "estimatedAnnualAverageEmissionReduction": 44, - "projectTag": "Brainbox" + "estimatedAnnualAverageEmissionReduction": 60, + "projectTag": "Kaymbo", + "createdAt": "11/22/2021", + "updatedAt": "11/22/2021" }, { - "warehouseProjectId": "16567921-fd35-4855-b872-c26f27e0e338", - "currentRegistry": "Dynazzy", - "registryOfOrigin": "Wikizz", - "originProjectID": "c65683ac-3f17-46f8-bd00-301555f7d844", - "program": "Devify", - "projectID": "3c1cfd94-3600-4e13-9074-c518fb5bebf0", - "projectName": "Skippad", - "projectLink": "https://deliciousdays.com/et/magnis/dis/parturient/montes.js?nisl=velit&nunc=vivamus&nisl=vel&duis=nulla&bibendum=eget&felis=eros&sed=elementum&interdum=pellentesque&venenatis=quisque&turpis=porta&enim=volutpat&blandit=erat&mi=quisque&in=erat&porttitor=eros&pede=viverra&justo=eget&eu=congue&massa=eget&donec=semper&dapibus=rutrum&duis=nulla&at=nunc&velit=purus&eu=phasellus&est=in&congue=felis&elementum=donec&in=semper&hac=sapien&habitasse=a&platea=libero&dictumst=nam&morbi=dui&vestibulum=proin&velit=leo&id=odio&pretium=porttitor&iaculis=id&diam=consequat&erat=in&fermentum=consequat&justo=ut&nec=nulla&condimentum=sed&neque=accumsan&sapien=felis&placerat=ut&ante=at&nulla=dolor&justo=quis&aliquam=odio&quis=consequat&turpis=varius&eget=integer&elit=ac&sodales=leo&scelerisque=pellentesque&mauris=ultrices&sit=mattis&amet=odio&eros=donec&suspendisse=vitae&accumsan=nisi&tortor=nam&quis=ultrices&turpis=libero&sed=non&ante=mattis&vivamus=pulvinar&tortor=nulla&duis=pede&mattis=ullamcorper&egestas=augue&metus=a&aenean=suscipit&fermentum=nulla&donec=elit&ut=ac&mauris=nulla&eget=sed&massa=vel&tempor=enim&convallis=sit", - "projectDeveloper": "Aimbo", - "sector": "Voonyx", + "warehouseProjectId": "8a02a620-8be8-44f9-ba90-eff00ccc3a70", + "currentRegistry": "Feedfire", + "registryOfOrigin": "Skinte", + "originProjectID": "c5067a60-e329-4510-991c-b302fd00ec8d", + "program": "Eimbee", + "projectID": "c9d147e2-bc07-4e68-a76d-43424fa8cd4e", + "projectName": "Zoomcast", + "projectLink": "http://dailymotion.com/ligula/suspendisse/ornare/consequat/lectus/in.jpg?aliquam=consequat&lacus=nulla&morbi=nisl&quis=nunc&tortor=nisl&id=duis&nulla=bibendum&ultrices=felis&aliquet=sed&maecenas=interdum&leo=venenatis&odio=turpis&condimentum=enim&id=blandit&luctus=mi&nec=in&molestie=porttitor&sed=pede&justo=justo&pellentesque=eu&viverra=massa&pede=donec&ac=dapibus&diam=duis&cras=at&pellentesque=velit&volutpat=eu&dui=est&maecenas=congue&tristique=elementum&est=in&et=hac&tempus=habitasse&semper=platea&est=dictumst&quam=morbi&pharetra=vestibulum&magna=velit&ac=id&consequat=pretium&metus=iaculis&sapien=diam&ut=erat&nunc=fermentum&vestibulum=justo&ante=nec&ipsum=condimentum", + "projectDeveloper": "Cogibox", + "sector": "Viva", "projectType": "Topicshots", - "coveredByNDC": true, - "ndcLinkage": "Abatz", - "projectStatus": "lacus morbi sem mauris laoreet ut rhoncus aliquet pulvinar sed nisl nunc rhoncus dui vel sem sed sagittis", - "projectStatusDate": "5/29/2021", - "unitMetric": "Goldenrod", - "methodology": "Youtags", - "methodologyVersion": 39, - "validationApproach": "sapien cursus vestibulum proin eu mi nulla ac enim in", - "validationDate": "11/9/2021", - "estimatedAnnualAverageEmissionReduction": 69, - "projectTag": "Bubblebox" - }, - { - "warehouseProjectId": "0224f7ca-c497-4c5e-8516-ca6378b62f16", - "currentRegistry": "Roomm", - "registryOfOrigin": "Thoughtmix", - "originProjectID": "69839c6a-2094-403f-ab61-3ac927b8c323", - "program": "Rhybox", - "projectID": "8ec2985a-2778-43b0-b65b-ee0d964a79e3", - "projectName": "Dablist", - "projectLink": "https://pen.io/neque/libero.html?morbi=nascetur&odio=ridiculus&odio=mus&elementum=etiam&eu=vel&interdum=augue&eu=vestibulum&tincidunt=rutrum&in=rutrum&leo=neque&maecenas=aenean&pulvinar=auctor&lobortis=gravida&est=sem&phasellus=praesent&sit=id&amet=massa&erat=id&nulla=nisl", - "projectDeveloper": "Ntags", - "sector": "Photospace", - "projectType": "Skyndu", - "coveredByNDC": true, - "ndcLinkage": "Skynoodle", - "projectStatus": "mollis molestie lorem quisque ut erat curabitur gravida nisi at nibh in hac habitasse platea dictumst", - "projectStatusDate": "3/26/2021", - "unitMetric": "Red", - "methodology": "Meezzy", - "methodologyVersion": 38, - "validationApproach": "curabitur in libero ut massa volutpat convallis morbi odio odio elementum eu interdum eu tincidunt in leo maecenas pulvinar", - "validationDate": "1/6/2021", - "estimatedAnnualAverageEmissionReduction": 9, - "projectTag": "Tazzy" - }, - { - "warehouseProjectId": "5890445a-7882-4e0d-8099-81f08ba2c051", - "currentRegistry": "Jabberbean", - "registryOfOrigin": "Oyonder", - "originProjectID": "64f43c3c-0a0a-46a9-98d4-112ce971da15", - "program": "Dynabox", - "projectID": "5da383b6-8c91-44b4-9817-a62e0493d737", - "projectName": "Flashpoint", - "projectLink": "https://scientificamerican.com/aenean/fermentum/donec.xml?pede=nec&justo=euismod&lacinia=scelerisque&eget=quam&tincidunt=turpis&eget=adipiscing&tempus=lorem&vel=vitae&pede=mattis&morbi=nibh&porttitor=ligula&lorem=nec&id=sem&ligula=duis&suspendisse=aliquam&ornare=convallis&consequat=nunc&lectus=proin&in=at&est=turpis&risus=a&auctor=pede&sed=posuere&tristique=nonummy&in=integer&tempus=non&sit=velit&amet=donec&sem=diam&fusce=neque&consequat=vestibulum&nulla=eget&nisl=vulputate&nunc=ut&nisl=ultrices&duis=vel&bibendum=augue&felis=vestibulum&sed=ante&interdum=ipsum&venenatis=primis&turpis=in&enim=faucibus&blandit=orci&mi=luctus&in=et&porttitor=ultrices&pede=posuere&justo=cubilia&eu=curae&massa=donec&donec=pharetra&dapibus=magna&duis=vestibulum&at=aliquet&velit=ultrices&eu=erat&est=tortor&congue=sollicitudin&elementum=mi&in=sit", - "projectDeveloper": "Yakitri", - "sector": "Gigaclub", - "projectType": "Gigazoom", - "coveredByNDC": false, - "ndcLinkage": "Mycat", - "projectStatus": "sem fusce consequat nulla nisl nunc nisl duis bibendum felis sed interdum venenatis turpis enim blandit mi in porttitor pede", - "projectStatusDate": "3/19/2021", - "unitMetric": "Aquamarine", - "methodology": "Roomm", - "methodologyVersion": 39, - "validationApproach": "hendrerit at vulputate vitae nisl aenean lectus pellentesque eget nunc donec quis orci", - "validationDate": "4/9/2021", - "estimatedAnnualAverageEmissionReduction": 26, - "projectTag": "Photobean" - }, - { - "warehouseProjectId": "f130ac5a-a109-45da-b4c1-6a420bac00d9", - "currentRegistry": "Zava", - "registryOfOrigin": "Zoomdog", - "originProjectID": "4ad6fbd9-4eff-44fb-8f1b-e882a9880075", - "program": "Wikizz", - "projectID": "cccfdc35-fe7e-4e0a-9f32-e8c9e0e5bd16", - "projectName": "Jabbersphere", - "projectLink": "http://hhs.gov/tortor/id/nulla/ultrices.html?montes=molestie&nascetur=sed&ridiculus=justo&mus=pellentesque&etiam=viverra&vel=pede&augue=ac&vestibulum=diam&rutrum=cras&rutrum=pellentesque&neque=volutpat&aenean=dui", - "projectDeveloper": "Brightdog", - "sector": "Zazio", - "projectType": "Dabvine", - "coveredByNDC": false, - "ndcLinkage": "Zooxo", - "projectStatus": "consectetuer adipiscing elit proin interdum mauris non ligula pellentesque ultrices phasellus id sapien in sapien iaculis congue vivamus", - "projectStatusDate": "10/12/2021", - "unitMetric": "Indigo", - "methodology": "Browsecat", - "methodologyVersion": 86, - "validationApproach": "nunc vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae mauris viverra", - "validationDate": "4/29/2021", - "estimatedAnnualAverageEmissionReduction": 43, - "projectTag": "Photobug" - }, - { - "warehouseProjectId": "e71af7b1-d09d-4102-83b9-4fab555920b9", - "currentRegistry": "Feedspan", - "registryOfOrigin": "Fliptune", - "originProjectID": "506ff3cb-bdfc-45f2-bebb-c9cdf13f2bc3", - "program": "Yombu", - "projectID": "4d7a068e-8a69-4a52-8643-1e93b34e45c3", - "projectName": "Jabberbean", - "projectLink": "http://nature.com/nisl/ut/volutpat/sapien/arcu/sed.js?vestibulum=id&velit=ligula&id=suspendisse&pretium=ornare&iaculis=consequat&diam=lectus&erat=in&fermentum=est&justo=risus&nec=auctor&condimentum=sed&neque=tristique&sapien=in&placerat=tempus&ante=sit&nulla=amet&justo=sem&aliquam=fusce&quis=consequat&turpis=nulla&eget=nisl&elit=nunc&sodales=nisl&scelerisque=duis&mauris=bibendum&sit=felis&amet=sed&eros=interdum&suspendisse=venenatis&accumsan=turpis&tortor=enim&quis=blandit&turpis=mi&sed=in&ante=porttitor&vivamus=pede&tortor=justo&duis=eu&mattis=massa&egestas=donec&metus=dapibus&aenean=duis&fermentum=at&donec=velit&ut=eu&mauris=est&eget=congue&massa=elementum&tempor=in&convallis=hac&nulla=habitasse&neque=platea&libero=dictumst&convallis=morbi&eget=vestibulum&eleifend=velit&luctus=id&ultricies=pretium&eu=iaculis&nibh=diam&quisque=erat&id=fermentum&justo=justo&sit=nec&amet=condimentum&sapien=neque&dignissim=sapien&vestibulum=placerat&vestibulum=ante&ante=nulla&ipsum=justo&primis=aliquam&in=quis&faucibus=turpis&orci=eget&luctus=elit&et=sodales&ultrices=scelerisque&posuere=mauris&cubilia=sit&curae=amet&nulla=eros&dapibus=suspendisse&dolor=accumsan&vel=tortor&est=quis&donec=turpis&odio=sed&justo=ante&sollicitudin=vivamus&ut=tortor&suscipit=duis&a=mattis&feugiat=egestas", - "projectDeveloper": "Twinder", - "sector": "Dynava", - "projectType": "Bubbletube", - "coveredByNDC": false, - "ndcLinkage": "Tavu", - "projectStatus": "non sodales sed tincidunt eu felis fusce posuere felis sed lacus morbi", - "projectStatusDate": "3/5/2021", - "unitMetric": "Indigo", - "methodology": "Oyope", - "methodologyVersion": 52, - "validationApproach": "vitae consectetuer eget rutrum at lorem integer tincidunt ante vel ipsum praesent blandit lacinia erat vestibulum sed magna", - "validationDate": "9/11/2021", - "estimatedAnnualAverageEmissionReduction": 38, - "projectTag": "Demivee" - }, - { - "warehouseProjectId": "a1e19b22-089f-4fc5-be4c-8464396f35d8", - "currentRegistry": "Vipe", - "registryOfOrigin": "Devcast", - "originProjectID": "341f9f10-3d9e-4838-91f7-6b05f469fa47", - "program": "Tagcat", - "projectID": "61e33818-c746-4c2f-aa5b-b5c94f88cf5b", - "projectName": "Skibox", - "projectLink": "https://illinois.edu/rutrum/nulla/tellus/in/sagittis.js?non=sapien&lectus=dignissim&aliquam=vestibulum&sit=vestibulum&amet=ante&diam=ipsum&in=primis&magna=in&bibendum=faucibus&imperdiet=orci&nullam=luctus&orci=et&pede=ultrices&venenatis=posuere&non=cubilia&sodales=curae&sed=nulla&tincidunt=dapibus&eu=dolor&felis=vel&fusce=est&posuere=donec&felis=odio&sed=justo&lacus=sollicitudin&morbi=ut&sem=suscipit&mauris=a&laoreet=feugiat&ut=et&rhoncus=eros&aliquet=vestibulum&pulvinar=ac&sed=est&nisl=lacinia&nunc=nisi&rhoncus=venenatis&dui=tristique&vel=fusce&sem=congue&sed=diam&sagittis=id&nam=ornare&congue=imperdiet&risus=sapien&semper=urna&porta=pretium&volutpat=nisl&quam=ut&pede=volutpat&lobortis=sapien&ligula=arcu&sit=sed&amet=augue&eleifend=aliquam&pede=erat&libero=volutpat&quis=in&orci=congue&nullam=etiam&molestie=justo&nibh=etiam&in=pretium&lectus=iaculis&pellentesque=justo&at=in&nulla=hac&suspendisse=habitasse&potenti=platea&cras=dictumst&in=etiam&purus=faucibus&eu=cursus&magna=urna&vulputate=ut&luctus=tellus&cum=nulla&sociis=ut&natoque=erat&penatibus=id&et=mauris&magnis=vulputate&dis=elementum&parturient=nullam&montes=varius&nascetur=nulla&ridiculus=facilisi&mus=cras&vivamus=non&vestibulum=velit&sagittis=nec", - "projectDeveloper": "Jabbercube", - "sector": "Devify", - "projectType": "Wikizz", - "coveredByNDC": false, - "ndcLinkage": "Jaxworks", - "projectStatus": "nulla pede ullamcorper augue a suscipit nulla elit ac nulla sed vel enim sit amet nunc viverra dapibus nulla suscipit", - "projectStatusDate": "11/19/2021", + "coveredByNDC": 0, + "ndcLinkage": "Shuffletag", + "projectStatus": "in magna bibendum imperdiet nullam orci pede venenatis non sodales sed tincidunt eu felis fusce posuere felis sed lacus", + "projectStatusDate": "8/23/2021", "unitMetric": "Fuscia", - "methodology": "Jaloo", - "methodologyVersion": 33, - "validationApproach": "faucibus accumsan odio curabitur convallis duis consequat dui nec nisi volutpat eleifend donec", - "validationDate": "12/2/2020", - "estimatedAnnualAverageEmissionReduction": 91, - "projectTag": "Dabjam" - }, - { - "warehouseProjectId": "c232f0cb-9358-4ddd-99f4-c45284cbaee0", - "currentRegistry": "Mynte", - "registryOfOrigin": "Fivespan", - "originProjectID": "025d237a-0edb-410e-bc89-76a16dc889da", - "program": "Aimbu", - "projectID": "6d67a7b5-fda3-4d17-9eda-56bbe5696c0e", - "projectName": "Oba", - "projectLink": "http://odnoklassniki.ru/libero/ut/massa/volutpat.png?in=neque&libero=vestibulum&ut=eget&massa=vulputate&volutpat=ut&convallis=ultrices&morbi=vel&odio=augue&odio=vestibulum&elementum=ante&eu=ipsum&interdum=primis&eu=in&tincidunt=faucibus&in=orci&leo=luctus&maecenas=et&pulvinar=ultrices&lobortis=posuere&est=cubilia&phasellus=curae&sit=donec&amet=pharetra&erat=magna&nulla=vestibulum&tempus=aliquet&vivamus=ultrices&in=erat&felis=tortor&eu=sollicitudin&sapien=mi&cursus=sit&vestibulum=amet&proin=lobortis&eu=sapien&mi=sapien&nulla=non&ac=mi&enim=integer&in=ac&tempor=neque&turpis=duis&nec=bibendum&euismod=morbi&scelerisque=non&quam=quam&turpis=nec&adipiscing=dui&lorem=luctus&vitae=rutrum&mattis=nulla&nibh=tellus&ligula=in&nec=sagittis&sem=dui&duis=vel&aliquam=nisl&convallis=duis&nunc=ac&proin=nibh&at=fusce&turpis=lacus&a=purus&pede=aliquet&posuere=at&nonummy=feugiat&integer=non&non=pretium&velit=quis&donec=lectus&diam=suspendisse&neque=potenti&vestibulum=in&eget=eleifend&vulputate=quam&ut=a&ultrices=odio&vel=in&augue=hac&vestibulum=habitasse&ante=platea&ipsum=dictumst&primis=maecenas&in=ut&faucibus=massa&orci=quis&luctus=augue&et=luctus&ultrices=tincidunt&posuere=nulla&cubilia=mollis&curae=molestie", - "projectDeveloper": "Tekfly", - "sector": "Rhyzio", - "projectType": "Avamba", - "coveredByNDC": true, - "ndcLinkage": "Oyoyo", - "projectStatus": "vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae duis", - "projectStatusDate": "4/13/2021", - "unitMetric": "Red", - "methodology": "Tavu", - "methodologyVersion": 96, - "validationApproach": "integer non velit donec diam neque vestibulum eget vulputate ut ultrices", - "validationDate": "3/29/2021", + "methodology": "Quatz", + "methodologyVersion": 43, + "validationApproach": "consectetuer eget rutrum at lorem integer tincidunt ante vel ipsum praesent blandit lacinia erat", + "validationDate": "11/22/2021", "estimatedAnnualAverageEmissionReduction": 60, - "projectTag": "Edgeblab" + "projectTag": "Kaymbo", + "createdAt": "11/22/2021", + "updatedAt": "11/22/2021" }, { - "warehouseProjectId": "a322950b-8a2f-4a95-9f4c-2d16ae429741", - "currentRegistry": "Voolia", - "registryOfOrigin": "Edgewire", - "originProjectID": "5242c638-ddd0-4c11-8639-07b9264e3c9d", - "program": "Geba", - "projectID": "94c345ce-97e9-44bd-953f-4692d1fba9aa", - "projectName": "Trudoo", - "projectLink": "https://epa.gov/nec/nisi/volutpat.html?pharetra=vivamus", - "projectDeveloper": "Zava", - "sector": "Shuffletag", - "projectType": "Digitube", - "coveredByNDC": false, - "ndcLinkage": "Mycat", - "projectStatus": "et commodo vulputate justo in blandit ultrices enim lorem ipsum dolor sit amet consectetuer adipiscing elit", - "projectStatusDate": "4/21/2021", - "unitMetric": "Crimson", - "methodology": "Zoonder", - "methodologyVersion": 49, - "validationApproach": "felis ut at dolor quis odio consequat varius integer ac leo", - "validationDate": "1/24/2021", - "estimatedAnnualAverageEmissionReduction": 61, - "projectTag": "Yamia" - }, - { - "warehouseProjectId": "46dfc0a6-a80e-4596-9acf-c5d93723d0d4", - "currentRegistry": "Zoomlounge", - "registryOfOrigin": "Tambee", - "originProjectID": "c30c51ba-9de6-422b-b44f-eca8beec0e0c", - "program": "Jaloo", - "projectID": "8127fcb2-8e0a-4844-816b-89d91db1af47", - "projectName": "Devpoint", - "projectLink": "https://ucoz.com/morbi/odio/odio/elementum.js?sit=ante&amet=vivamus&turpis=tortor&elementum=duis&ligula=mattis&vehicula=egestas&consequat=metus&morbi=aenean&a=fermentum&ipsum=donec&integer=ut&a=mauris&nibh=eget&in=massa&quis=tempor&justo=convallis&maecenas=nulla&rhoncus=neque&aliquam=libero&lacus=convallis&morbi=eget&quis=eleifend&tortor=luctus&id=ultricies&nulla=eu&ultrices=nibh&aliquet=quisque&maecenas=id&leo=justo&odio=sit&condimentum=amet&id=sapien&luctus=dignissim&nec=vestibulum", - "projectDeveloper": "Mita", - "sector": "Cogibox", - "projectType": "Topiczoom", - "coveredByNDC": true, - "ndcLinkage": "Shuffledrive", - "projectStatus": "erat fermentum justo nec condimentum neque sapien placerat ante nulla justo aliquam quis turpis eget elit sodales", - "projectStatusDate": "8/22/2021", + "warehouseProjectId": "11954678-f7a5-47d2-94f8-f4f3138a529c", + "currentRegistry": "Feedfire", + "registryOfOrigin": "Skinte", + "originProjectID": "c5067a60-e329-4510-991c-b302fd00ec8d", + "program": "Eimbee", + "projectID": "c9d147e2-bc07-4e68-a76d-43424fa8cd4e", + "projectName": "Zoomcast", + "projectLink": "http://dailymotion.com/ligula/suspendisse/ornare/consequat/lectus/in.jpg?aliquam=consequat&lacus=nulla&morbi=nisl&quis=nunc&tortor=nisl&id=duis&nulla=bibendum&ultrices=felis&aliquet=sed&maecenas=interdum&leo=venenatis&odio=turpis&condimentum=enim&id=blandit&luctus=mi&nec=in&molestie=porttitor&sed=pede&justo=justo&pellentesque=eu&viverra=massa&pede=donec&ac=dapibus&diam=duis&cras=at&pellentesque=velit&volutpat=eu&dui=est&maecenas=congue&tristique=elementum&est=in&et=hac&tempus=habitasse&semper=platea&est=dictumst&quam=morbi&pharetra=vestibulum&magna=velit&ac=id&consequat=pretium&metus=iaculis&sapien=diam&ut=erat&nunc=fermentum&vestibulum=justo&ante=nec&ipsum=condimentum", + "projectDeveloper": "Cogibox", + "sector": "Viva", + "projectType": "Topicshots", + "coveredByNDC": 0, + "ndcLinkage": "Shuffletag", + "projectStatus": "in magna bibendum imperdiet nullam orci pede venenatis non sodales sed tincidunt eu felis fusce posuere felis sed lacus", + "projectStatusDate": "8/23/2021", "unitMetric": "Fuscia", - "methodology": "Riffpath", - "methodologyVersion": 25, - "validationApproach": "amet erat nulla tempus vivamus in felis eu sapien cursus vestibulum proin eu mi nulla ac enim in tempor", - "validationDate": "4/18/2021", - "estimatedAnnualAverageEmissionReduction": 96, - "projectTag": "Devpulse" - }, - { - "warehouseProjectId": "62e9b02a-b582-4b6c-bce4-5475d7ac2009", - "currentRegistry": "Edgeclub", - "registryOfOrigin": "Fadeo", - "originProjectID": "f329474f-5018-4912-9752-f85a2b9205e5", - "program": "Yambee", - "projectID": "5c53d738-93bd-40bf-a35c-2a57c736efe9", - "projectName": "Divanoodle", - "projectLink": "https://toplist.cz/libero/nullam/sit/amet.json?at=elementum&velit=ligula&vivamus=vehicula&vel=consequat&nulla=morbi&eget=a&eros=ipsum&elementum=integer&pellentesque=a&quisque=nibh", - "projectDeveloper": "Skimia", - "sector": "Twinte", - "projectType": "Oyope", - "coveredByNDC": true, - "ndcLinkage": "Layo", - "projectStatus": "cubilia curae donec pharetra magna vestibulum aliquet ultrices erat tortor sollicitudin mi sit amet lobortis sapien sapien non mi integer", - "projectStatusDate": "4/13/2021", - "unitMetric": "Mauv", - "methodology": "Topicblab", - "methodologyVersion": 53, - "validationApproach": "volutpat dui maecenas tristique est et tempus semper est quam", - "validationDate": "10/16/2021", - "estimatedAnnualAverageEmissionReduction": 97, - "projectTag": "Kwilith" - }, - { - "warehouseProjectId": "0668d4cf-2d28-42f2-910a-091940042a37", - "currentRegistry": "Quatz", - "registryOfOrigin": "Flashspan", - "originProjectID": "310715df-958a-47aa-8ae1-4dfa1b2990cf", - "program": "Katz", - "projectID": "30fa0fcc-b663-476b-9d70-963e242d38a8", - "projectName": "Miboo", - "projectLink": "http://plala.or.jp/etiam/pretium/iaculis/justo/in/hac/habitasse.js?amet=orci&sapien=eget&dignissim=orci&vestibulum=vehicula&vestibulum=condimentum&ante=curabitur&ipsum=in&primis=libero&in=ut&faucibus=massa&orci=volutpat&luctus=convallis&et=morbi&ultrices=odio&posuere=odio&cubilia=elementum&curae=eu&nulla=interdum&dapibus=eu&dolor=tincidunt&vel=in&est=leo&donec=maecenas&odio=pulvinar&justo=lobortis&sollicitudin=est&ut=phasellus&suscipit=sit&a=amet&feugiat=erat&et=nulla&eros=tempus&vestibulum=vivamus&ac=in&est=felis&lacinia=eu&nisi=sapien&venenatis=cursus&tristique=vestibulum&fusce=proin&congue=eu&diam=mi&id=nulla&ornare=ac&imperdiet=enim&sapien=in&urna=tempor&pretium=turpis&nisl=nec&ut=euismod&volutpat=scelerisque&sapien=quam&arcu=turpis&sed=adipiscing", - "projectDeveloper": "Abatz", - "sector": "Tagpad", - "projectType": "Yodel", - "coveredByNDC": true, - "ndcLinkage": "Demimbu", - "projectStatus": "erat vestibulum sed magna at nunc commodo placerat praesent blandit nam nulla integer pede justo", - "projectStatusDate": "10/13/2021", - "unitMetric": "Aquamarine", - "methodology": "Mynte", - "methodologyVersion": 88, - "validationApproach": "fermentum justo nec condimentum neque sapien placerat ante nulla justo aliquam quis turpis eget elit sodales scelerisque mauris", - "validationDate": "8/17/2021", - "estimatedAnnualAverageEmissionReduction": 38, - "projectTag": "Yombu" - }, - { - "warehouseProjectId": "6c64723c-11c5-47fe-802d-a018959fec8a", - "currentRegistry": "Voolith", - "registryOfOrigin": "Tambee", - "originProjectID": "ba95d31d-dbc6-428a-bd0c-24c57c7c1dcd", - "program": "Thoughtbridge", - "projectID": "cddfd75f-ab29-4051-97fc-f6856c33e979", - "projectName": "Abata", - "projectLink": "http://networkadvertising.org/quisque/porta/volutpat/erat/quisque/erat.json?at=eu&velit=nibh&eu=quisque&est=id&congue=justo&elementum=sit&in=amet&hac=sapien&habitasse=dignissim&platea=vestibulum&dictumst=vestibulum&morbi=ante&vestibulum=ipsum&velit=primis&id=in&pretium=faucibus&iaculis=orci&diam=luctus&erat=et&fermentum=ultrices&justo=posuere&nec=cubilia&condimentum=curae&neque=nulla&sapien=dapibus", - "projectDeveloper": "Skynoodle", - "sector": "Youopia", - "projectType": "Tagchat", - "coveredByNDC": true, - "ndcLinkage": "Zoovu", - "projectStatus": "eu nibh quisque id justo sit amet sapien dignissim vestibulum vestibulum ante ipsum primis in", - "projectStatusDate": "11/9/2021", - "unitMetric": "Violet", - "methodology": "Browsebug", - "methodologyVersion": 10, - "validationApproach": "sit amet justo morbi ut odio cras mi pede malesuada in imperdiet", - "validationDate": "7/25/2021", - "estimatedAnnualAverageEmissionReduction": 31, - "projectTag": "Yakidoo" - }, - { - "warehouseProjectId": "20992822-5189-4508-a2f3-c9900f16be0e", - "currentRegistry": "Brainlounge", - "registryOfOrigin": "Edgewire", - "originProjectID": "a0d14080-6e6e-447f-8577-c01c8da870c9", - "program": "Feednation", - "projectID": "84b848b3-3b83-4afa-a159-f24fb4ad305e", - "projectName": "Yodoo", - "projectLink": "http://youtu.be/vestibulum/ante/ipsum/primis/in.xml?bibendum=sociis&felis=natoque&sed=penatibus&interdum=et&venenatis=magnis&turpis=dis&enim=parturient&blandit=montes&mi=nascetur&in=ridiculus&porttitor=mus&pede=etiam&justo=vel&eu=augue&massa=vestibulum&donec=rutrum&dapibus=rutrum&duis=neque&at=aenean&velit=auctor&eu=gravida&est=sem&congue=praesent&elementum=id&in=massa&hac=id&habitasse=nisl&platea=venenatis&dictumst=lacinia&morbi=aenean&vestibulum=sit&velit=amet&id=justo&pretium=morbi&iaculis=ut&diam=odio&erat=cras&fermentum=mi&justo=pede&nec=malesuada&condimentum=in&neque=imperdiet&sapien=et&placerat=commodo&ante=vulputate&nulla=justo&justo=in&aliquam=blandit&quis=ultrices&turpis=enim&eget=lorem&elit=ipsum&sodales=dolor&scelerisque=sit&mauris=amet&sit=consectetuer&amet=adipiscing&eros=elit&suspendisse=proin&accumsan=interdum&tortor=mauris&quis=non&turpis=ligula&sed=pellentesque&ante=ultrices&vivamus=phasellus&tortor=id&duis=sapien&mattis=in&egestas=sapien&metus=iaculis&aenean=congue&fermentum=vivamus&donec=metus&ut=arcu&mauris=adipiscing&eget=molestie&massa=hendrerit&tempor=at&convallis=vulputate", - "projectDeveloper": "Eazzy", - "sector": "Youspan", - "projectType": "Trunyx", - "coveredByNDC": true, - "ndcLinkage": "Flashpoint", - "projectStatus": "nulla nunc purus phasellus in felis donec semper sapien a libero nam dui", - "projectStatusDate": "6/1/2021", - "unitMetric": "Aquamarine", - "methodology": "Twitterbeat", - "methodologyVersion": 45, - "validationApproach": "mattis nibh ligula nec sem duis aliquam convallis nunc proin at turpis a pede posuere nonummy integer", - "validationDate": "9/26/2021", - "estimatedAnnualAverageEmissionReduction": 77, - "projectTag": "Voonix" - }, - { - "warehouseProjectId": "4181ac89-ba0b-4abc-b801-55588911b200", - "currentRegistry": "Edgeclub", - "registryOfOrigin": "Aimbo", - "originProjectID": "8048ca65-804e-4465-aa1e-3dc2daf367ba", - "program": "Meevee", - "projectID": "68377464-a173-4c76-b54b-403ad665610a", - "projectName": "Linkbridge", - "projectLink": "https://scientificamerican.com/nisi/venenatis/tristique/fusce/congue.js?donec=rhoncus&pharetra=mauris&magna=enim&vestibulum=leo&aliquet=rhoncus&ultrices=sed&erat=vestibulum", - "projectDeveloper": "Devpoint", - "sector": "Jabbercube", - "projectType": "Babbleopia", - "coveredByNDC": true, - "ndcLinkage": "Vimbo", - "projectStatus": "ultrices enim lorem ipsum dolor sit amet consectetuer adipiscing elit proin interdum mauris non ligula pellentesque ultrices", - "projectStatusDate": "1/19/2021", - "unitMetric": "Khaki", - "methodology": "Jazzy", - "methodologyVersion": 68, - "validationApproach": "vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae donec pharetra magna", - "validationDate": "1/28/2021", - "estimatedAnnualAverageEmissionReduction": 70, - "projectTag": "Kwinu" - }, - { - "warehouseProjectId": "71c0b963-5fa2-47ec-8142-3ac15af14791", - "currentRegistry": "Rhyloo", - "registryOfOrigin": "Ntag", - "originProjectID": "81e78ec3-9e29-4104-9d3b-b5b6c79b895d", - "program": "Vinte", - "projectID": "f1edf6c4-f57a-42d7-840f-8eeb86d7c310", - "projectName": "Nlounge", - "projectLink": "http://marketwatch.com/nulla/pede/ullamcorper/augue/a.js?vel=in&sem=faucibus&sed=orci&sagittis=luctus&nam=et&congue=ultrices&risus=posuere&semper=cubilia&porta=curae&volutpat=duis&quam=faucibus&pede=accumsan&lobortis=odio&ligula=curabitur&sit=convallis&amet=duis&eleifend=consequat&pede=dui&libero=nec&quis=nisi&orci=volutpat&nullam=eleifend&molestie=donec&nibh=ut", - "projectDeveloper": "Devcast", - "sector": "Edgepulse", - "projectType": "Mudo", - "coveredByNDC": true, - "ndcLinkage": "Oloo", - "projectStatus": "augue vestibulum rutrum rutrum neque aenean auctor gravida sem praesent id massa id nisl venenatis lacinia aenean sit", - "projectStatusDate": "12/23/2020", - "unitMetric": "Crimson", - "methodology": "Dabjam", - "methodologyVersion": 57, - "validationApproach": "in libero ut massa volutpat convallis morbi odio odio elementum eu interdum eu tincidunt", - "validationDate": "4/29/2021", - "estimatedAnnualAverageEmissionReduction": 32, - "projectTag": "Lazzy" - }, - { - "warehouseProjectId": "24058524-dfd7-4b7f-9e33-f3b55a083f36", - "currentRegistry": "Vimbo", - "registryOfOrigin": "Roombo", - "originProjectID": "caf49c79-eb8d-43d6-9bba-e8fe4333c656", - "program": "Ozu", - "projectID": "171b86a7-49fb-4ea6-855d-0b9cd9f98488", - "projectName": "Brightbean", - "projectLink": "http://ifeng.com/ante/vestibulum/ante/ipsum/primis.js?ut=vivamus&blandit=in&non=felis&interdum=eu&in=sapien&ante=cursus&vestibulum=vestibulum&ante=proin&ipsum=eu&primis=mi&in=nulla&faucibus=ac&orci=enim&luctus=in&et=tempor&ultrices=turpis&posuere=nec&cubilia=euismod&curae=scelerisque&duis=quam&faucibus=turpis&accumsan=adipiscing&odio=lorem&curabitur=vitae&convallis=mattis&duis=nibh&consequat=ligula&dui=nec&nec=sem&nisi=duis&volutpat=aliquam&eleifend=convallis&donec=nunc&ut=proin&dolor=at&morbi=turpis&vel=a&lectus=pede&in=posuere&quam=nonummy&fringilla=integer&rhoncus=non&mauris=velit&enim=donec&leo=diam&rhoncus=neque&sed=vestibulum&vestibulum=eget&sit=vulputate&amet=ut&cursus=ultrices&id=vel&turpis=augue&integer=vestibulum&aliquet=ante&massa=ipsum&id=primis&lobortis=in&convallis=faucibus&tortor=orci&risus=luctus&dapibus=et&augue=ultrices&vel=posuere&accumsan=cubilia&tellus=curae&nisi=donec&eu=pharetra&orci=magna&mauris=vestibulum&lacinia=aliquet&sapien=ultrices&quis=erat&libero=tortor&nullam=sollicitudin&sit=mi&amet=sit&turpis=amet", - "projectDeveloper": "Kaymbo", - "sector": "Eayo", - "projectType": "Meedoo", - "coveredByNDC": false, - "ndcLinkage": "Kwimbee", - "projectStatus": "velit id pretium iaculis diam erat fermentum justo nec condimentum neque sapien placerat ante nulla justo aliquam quis turpis eget", - "projectStatusDate": "1/10/2021", - "unitMetric": "Aquamarine", - "methodology": "Camido", - "methodologyVersion": 94, - "validationApproach": "ante vivamus tortor duis mattis egestas metus aenean fermentum donec ut", - "validationDate": "4/2/2021", - "estimatedAnnualAverageEmissionReduction": 83, - "projectTag": "Twitterworks" - }, - { - "warehouseProjectId": "69a0e37a-d523-4a4c-a004-7e3175cfa590", - "currentRegistry": "Chatterpoint", - "registryOfOrigin": "Innojam", - "originProjectID": "d13b77d3-2c79-40d3-9bf5-d0a57d96a829", - "program": "Aivee", - "projectID": "b188388f-c5d4-4819-ad72-37cf60513f4e", - "projectName": "Feedfish", - "projectLink": "http://google.com/ac/neque.jsp?nisl=sem&duis=duis&ac=aliquam&nibh=convallis&fusce=nunc&lacus=proin&purus=at&aliquet=turpis&at=a&feugiat=pede&non=posuere&pretium=nonummy&quis=integer&lectus=non&suspendisse=velit&potenti=donec&in=diam&eleifend=neque&quam=vestibulum&a=eget&odio=vulputate&in=ut&hac=ultrices&habitasse=vel&platea=augue&dictumst=vestibulum&maecenas=ante&ut=ipsum&massa=primis&quis=in&augue=faucibus&luctus=orci&tincidunt=luctus&nulla=et&mollis=ultrices&molestie=posuere&lorem=cubilia&quisque=curae&ut=donec&erat=pharetra&curabitur=magna&gravida=vestibulum&nisi=aliquet&at=ultrices&nibh=erat&in=tortor&hac=sollicitudin&habitasse=mi&platea=sit&dictumst=amet&aliquam=lobortis&augue=sapien&quam=sapien&sollicitudin=non&vitae=mi&consectetuer=integer&eget=ac&rutrum=neque&at=duis&lorem=bibendum&integer=morbi&tincidunt=non&ante=quam&vel=nec&ipsum=dui&praesent=luctus&blandit=rutrum&lacinia=nulla&erat=tellus&vestibulum=in&sed=sagittis&magna=dui&at=vel&nunc=nisl&commodo=duis&placerat=ac&praesent=nibh&blandit=fusce&nam=lacus&nulla=purus&integer=aliquet&pede=at&justo=feugiat&lacinia=non&eget=pretium&tincidunt=quis&eget=lectus&tempus=suspendisse&vel=potenti&pede=in&morbi=eleifend&porttitor=quam&lorem=a&id=odio&ligula=in&suspendisse=hac", - "projectDeveloper": "Ntag", - "sector": "Babbleopia", - "projectType": "Dynabox", - "coveredByNDC": true, - "ndcLinkage": "Mydo", - "projectStatus": "nam congue risus semper porta volutpat quam pede lobortis ligula sit amet eleifend pede libero quis orci nullam molestie", - "projectStatusDate": "6/16/2021", - "unitMetric": "Purple", - "methodology": "Midel", - "methodologyVersion": 52, - "validationApproach": "at dolor quis odio consequat varius integer ac leo pellentesque ultrices mattis", - "validationDate": "8/7/2021", - "estimatedAnnualAverageEmissionReduction": 66, - "projectTag": "Janyx" - }, - { - "warehouseProjectId": "aae38ca5-a1f6-4ab0-a9bd-6d29feecb9ff", - "currentRegistry": "Kaymbo", - "registryOfOrigin": "Katz", - "originProjectID": "6c97218a-aef0-4730-8c3e-6b4456ffeb7c", - "program": "Skimia", - "projectID": "ce893d9f-76f2-4f6c-8b7c-528cc5433a64", - "projectName": "Chatterbridge", - "projectLink": "https://google.co.jp/eu/sapien.js?iaculis=morbi&diam=non&erat=quam&fermentum=nec&justo=dui&nec=luctus&condimentum=rutrum&neque=nulla&sapien=tellus&placerat=in&ante=sagittis&nulla=dui&justo=vel&aliquam=nisl&quis=duis&turpis=ac&eget=nibh&elit=fusce&sodales=lacus&scelerisque=purus&mauris=aliquet&sit=at&amet=feugiat&eros=non&suspendisse=pretium&accumsan=quis&tortor=lectus&quis=suspendisse&turpis=potenti&sed=in&ante=eleifend&vivamus=quam&tortor=a&duis=odio&mattis=in&egestas=hac&metus=habitasse&aenean=platea&fermentum=dictumst&donec=maecenas&ut=ut&mauris=massa&eget=quis&massa=augue&tempor=luctus&convallis=tincidunt&nulla=nulla&neque=mollis&libero=molestie&convallis=lorem&eget=quisque&eleifend=ut&luctus=erat&ultricies=curabitur&eu=gravida&nibh=nisi&quisque=at&id=nibh&justo=in&sit=hac&amet=habitasse&sapien=platea&dignissim=dictumst&vestibulum=aliquam&vestibulum=augue&ante=quam&ipsum=sollicitudin&primis=vitae&in=consectetuer&faucibus=eget&orci=rutrum&luctus=at&et=lorem&ultrices=integer&posuere=tincidunt&cubilia=ante&curae=vel&nulla=ipsum&dapibus=praesent&dolor=blandit&vel=lacinia&est=erat&donec=vestibulum&odio=sed&justo=magna&sollicitudin=at&ut=nunc&suscipit=commodo&a=placerat&feugiat=praesent&et=blandit", - "projectDeveloper": "Quimba", - "sector": "Edgepulse", - "projectType": "Feednation", - "coveredByNDC": true, - "ndcLinkage": "Blogpad", - "projectStatus": "odio porttitor id consequat in consequat ut nulla sed accumsan felis ut at", - "projectStatusDate": "7/11/2021", - "unitMetric": "Goldenrod", - "methodology": "Vidoo", - "methodologyVersion": 18, - "validationApproach": "proin eu mi nulla ac enim in tempor turpis nec euismod scelerisque quam turpis adipiscing", - "validationDate": "3/15/2021", - "estimatedAnnualAverageEmissionReduction": 30, - "projectTag": "Tanoodle" + "methodology": "Quatz", + "methodologyVersion": 43, + "validationApproach": "consectetuer eget rutrum at lorem integer tincidunt ante vel ipsum praesent blandit lacinia erat", + "validationDate": "11/22/2021", + "estimatedAnnualAverageEmissionReduction": 60, + "projectTag": "Kaymbo", + "createdAt": "11/22/2021", + "updatedAt": "11/22/2021" }, { - "warehouseProjectId": "cb205e91-108c-4973-931b-b9aa52116f13", - "currentRegistry": "Myworks", - "registryOfOrigin": "Mydo", - "originProjectID": "7d10d826-4e9f-4cf1-be09-6ada86cd7b2f", - "program": "Photospace", - "projectID": "d45b48d4-77f8-4c79-b98a-ade5d49735d0", - "projectName": "Jatri", - "projectLink": "https://php.net/pretium/quis/lectus/suspendisse/potenti.aspx?posuere=in&cubilia=tempor&curae=turpis&nulla=nec&dapibus=euismod&dolor=scelerisque&vel=quam&est=turpis&donec=adipiscing&odio=lorem&justo=vitae&sollicitudin=mattis&ut=nibh&suscipit=ligula&a=nec&feugiat=sem&et=duis&eros=aliquam&vestibulum=convallis&ac=nunc&est=proin&lacinia=at&nisi=turpis&venenatis=a&tristique=pede&fusce=posuere&congue=nonummy&diam=integer&id=non&ornare=velit&imperdiet=donec&sapien=diam&urna=neque&pretium=vestibulum&nisl=eget&ut=vulputate&volutpat=ut&sapien=ultrices&arcu=vel&sed=augue&augue=vestibulum&aliquam=ante&erat=ipsum&volutpat=primis&in=in&congue=faucibus&etiam=orci&justo=luctus&etiam=et&pretium=ultrices&iaculis=posuere&justo=cubilia&in=curae&hac=donec&habitasse=pharetra&platea=magna&dictumst=vestibulum&etiam=aliquet&faucibus=ultrices&cursus=erat&urna=tortor&ut=sollicitudin&tellus=mi&nulla=sit&ut=amet&erat=lobortis", - "projectDeveloper": "Tazzy", - "sector": "Skyble", - "projectType": "Zooxo", - "coveredByNDC": false, - "ndcLinkage": "Twimm", - "projectStatus": "integer ac leo pellentesque ultrices mattis odio donec vitae nisi nam ultrices libero non", - "projectStatusDate": "6/23/2021", + "warehouseProjectId": "634f3d01-ca5c-4c0c-80d4-9dec6e0ec712", + "currentRegistry": "Feedfire", + "registryOfOrigin": "Skinte", + "originProjectID": "c5067a60-e329-4510-991c-b302fd00ec8d", + "program": "Eimbee", + "projectID": "c9d147e2-bc07-4e68-a76d-43424fa8cd4e", + "projectName": "Zoomcast", + "projectLink": "http://dailymotion.com/ligula/suspendisse/ornare/consequat/lectus/in.jpg?aliquam=consequat&lacus=nulla&morbi=nisl&quis=nunc&tortor=nisl&id=duis&nulla=bibendum&ultrices=felis&aliquet=sed&maecenas=interdum&leo=venenatis&odio=turpis&condimentum=enim&id=blandit&luctus=mi&nec=in&molestie=porttitor&sed=pede&justo=justo&pellentesque=eu&viverra=massa&pede=donec&ac=dapibus&diam=duis&cras=at&pellentesque=velit&volutpat=eu&dui=est&maecenas=congue&tristique=elementum&est=in&et=hac&tempus=habitasse&semper=platea&est=dictumst&quam=morbi&pharetra=vestibulum&magna=velit&ac=id&consequat=pretium&metus=iaculis&sapien=diam&ut=erat&nunc=fermentum&vestibulum=justo&ante=nec&ipsum=condimentum", + "projectDeveloper": "Cogibox", + "sector": "Viva", + "projectType": "Topicshots", + "coveredByNDC": 0, + "ndcLinkage": "Shuffletag", + "projectStatus": "in magna bibendum imperdiet nullam orci pede venenatis non sodales sed tincidunt eu felis fusce posuere felis sed lacus", + "projectStatusDate": "8/23/2021", "unitMetric": "Fuscia", - "methodology": "Flashspan", - "methodologyVersion": 33, - "validationApproach": "vitae nisl aenean lectus pellentesque eget nunc donec quis orci eget orci vehicula", - "validationDate": "4/12/2021", - "estimatedAnnualAverageEmissionReduction": 54, - "projectTag": "Camido" - }, - { - "warehouseProjectId": "cfbf75dd-d908-47ac-bf71-df8f9300c641", - "currentRegistry": "Browsezoom", - "registryOfOrigin": "Jetpulse", - "originProjectID": "28154e81-1435-40f7-8238-70e8e02c0d3f", - "program": "Jabbercube", - "projectID": "9331252a-229f-42b1-8e82-634824b5a232", - "projectName": "Kazio", - "projectLink": "https://edublogs.org/consequat/lectus/in/est/risus/auctor.jsp?vehicula=lacinia&consequat=sapien&morbi=quis&a=libero&ipsum=nullam&integer=sit&a=amet&nibh=turpis&in=elementum&quis=ligula&justo=vehicula&maecenas=consequat&rhoncus=morbi&aliquam=a&lacus=ipsum&morbi=integer&quis=a&tortor=nibh&id=in&nulla=quis&ultrices=justo&aliquet=maecenas&maecenas=rhoncus&leo=aliquam&odio=lacus&condimentum=morbi&id=quis&luctus=tortor&nec=id&molestie=nulla&sed=ultrices&justo=aliquet&pellentesque=maecenas&viverra=leo&pede=odio&ac=condimentum&diam=id&cras=luctus&pellentesque=nec", - "projectDeveloper": "Gabtype", - "sector": "Centizu", - "projectType": "Topicblab", - "coveredByNDC": false, - "ndcLinkage": "Mydo", - "projectStatus": "duis ac nibh fusce lacus purus aliquet at feugiat non pretium quis lectus suspendisse", - "projectStatusDate": "8/3/2021", - "unitMetric": "Green", - "methodology": "Kimia", - "methodologyVersion": 94, - "validationApproach": "quis orci eget orci vehicula condimentum curabitur in libero ut massa volutpat convallis morbi odio odio", - "validationDate": "4/25/2021", - "estimatedAnnualAverageEmissionReduction": 49, - "projectTag": "Avavee" + "methodology": "Quatz", + "methodologyVersion": 43, + "validationApproach": "consectetuer eget rutrum at lorem integer tincidunt ante vel ipsum praesent blandit lacinia erat", + "validationDate": "11/22/2021", + "estimatedAnnualAverageEmissionReduction": 60, + "projectTag": "Kaymbo", + "createdAt": "11/22/2021", + "updatedAt": "11/22/2021" }, { - "warehouseProjectId": "e246de92-8379-4dfa-a16f-14af2714165e", - "currentRegistry": "Flashset", - "registryOfOrigin": "Oyoba", - "originProjectID": "01c995e5-9cc2-4ba6-9116-8215de563926", - "program": "Meedoo", - "projectID": "428879b3-a7ed-436e-bd34-ef2b936715ab", - "projectName": "Twimbo", - "projectLink": "https://springer.com/lectus/suspendisse/potenti/in/eleifend.json?velit=felis&donec=fusce&diam=posuere&neque=felis&vestibulum=sed&eget=lacus&vulputate=morbi&ut=sem&ultrices=mauris&vel=laoreet&augue=ut&vestibulum=rhoncus&ante=aliquet&ipsum=pulvinar&primis=sed&in=nisl&faucibus=nunc&orci=rhoncus&luctus=dui&et=vel&ultrices=sem&posuere=sed&cubilia=sagittis&curae=nam&donec=congue&pharetra=risus&magna=semper&vestibulum=porta&aliquet=volutpat&ultrices=quam&erat=pede&tortor=lobortis&sollicitudin=ligula&mi=sit&sit=amet&amet=eleifend&lobortis=pede&sapien=libero&sapien=quis&non=orci&mi=nullam&integer=molestie&ac=nibh&neque=in&duis=lectus&bibendum=pellentesque&morbi=at&non=nulla&quam=suspendisse&nec=potenti&dui=cras&luctus=in&rutrum=purus&nulla=eu&tellus=magna&in=vulputate&sagittis=luctus&dui=cum&vel=sociis&nisl=natoque&duis=penatibus&ac=et&nibh=magnis&fusce=dis&lacus=parturient&purus=montes&aliquet=nascetur&at=ridiculus&feugiat=mus&non=vivamus&pretium=vestibulum&quis=sagittis&lectus=sapien&suspendisse=cum&potenti=sociis&in=natoque&eleifend=penatibus&quam=et&a=magnis", - "projectDeveloper": "Gigashots", - "sector": "Trupe", - "projectType": "Jetpulse", - "coveredByNDC": true, - "ndcLinkage": "Twinte", - "projectStatus": "nibh fusce lacus purus aliquet at feugiat non pretium quis lectus suspendisse potenti", - "projectStatusDate": "8/5/2021", - "unitMetric": "Violet", - "methodology": "Tagcat", - "methodologyVersion": 70, - "validationApproach": "in hac habitasse platea dictumst morbi vestibulum velit id pretium iaculis diam erat fermentum justo nec", - "validationDate": "8/10/2021", - "estimatedAnnualAverageEmissionReduction": 6, - "projectTag": "Babbleset" + "warehouseProjectId": "c28e5850-5ba9-4ac4-9065-1c1195efb9db", + "currentRegistry": "Feedfire", + "registryOfOrigin": "Skinte", + "originProjectID": "c5067a60-e329-4510-991c-b302fd00ec8d", + "program": "Eimbee", + "projectID": "c9d147e2-bc07-4e68-a76d-43424fa8cd4e", + "projectName": "Zoomcast", + "projectLink": "http://dailymotion.com/ligula/suspendisse/ornare/consequat/lectus/in.jpg?aliquam=consequat&lacus=nulla&morbi=nisl&quis=nunc&tortor=nisl&id=duis&nulla=bibendum&ultrices=felis&aliquet=sed&maecenas=interdum&leo=venenatis&odio=turpis&condimentum=enim&id=blandit&luctus=mi&nec=in&molestie=porttitor&sed=pede&justo=justo&pellentesque=eu&viverra=massa&pede=donec&ac=dapibus&diam=duis&cras=at&pellentesque=velit&volutpat=eu&dui=est&maecenas=congue&tristique=elementum&est=in&et=hac&tempus=habitasse&semper=platea&est=dictumst&quam=morbi&pharetra=vestibulum&magna=velit&ac=id&consequat=pretium&metus=iaculis&sapien=diam&ut=erat&nunc=fermentum&vestibulum=justo&ante=nec&ipsum=condimentum", + "projectDeveloper": "Cogibox", + "sector": "Viva", + "projectType": "Topicshots", + "coveredByNDC": 0, + "ndcLinkage": "Shuffletag", + "projectStatus": "in magna bibendum imperdiet nullam orci pede venenatis non sodales sed tincidunt eu felis fusce posuere felis sed lacus", + "projectStatusDate": "8/23/2021", + "unitMetric": "Fuscia", + "methodology": "Quatz", + "methodologyVersion": 43, + "validationApproach": "consectetuer eget rutrum at lorem integer tincidunt ante vel ipsum praesent blandit lacinia erat", + "validationDate": "11/22/2021", + "estimatedAnnualAverageEmissionReduction": 60, + "projectTag": "Kaymbo", + "createdAt": "11/22/2021", + "updatedAt": "11/22/2021" }, { - "warehouseProjectId": "469389f9-e589-44d1-973f-f1f5c7d35720", - "currentRegistry": "Avamba", - "registryOfOrigin": "Teklist", - "originProjectID": "7f4c9cfa-1c4f-4b5c-963d-129618896e2b", - "program": "Pixope", - "projectID": "08034c2f-b2d4-41b7-8476-359b79960e43", - "projectName": "Einti", - "projectLink": "https://over-blog.com/in/imperdiet/et/commodo.js?bibendum=fusce&morbi=lacus&non=purus&quam=aliquet&nec=at&dui=feugiat&luctus=non&rutrum=pretium&nulla=quis&tellus=lectus&in=suspendisse&sagittis=potenti&dui=in&vel=eleifend&nisl=quam&duis=a&ac=odio&nibh=in&fusce=hac&lacus=habitasse&purus=platea&aliquet=dictumst&at=maecenas&feugiat=ut&non=massa&pretium=quis&quis=augue&lectus=luctus&suspendisse=tincidunt&potenti=nulla&in=mollis&eleifend=molestie&quam=lorem&a=quisque&odio=ut&in=erat&hac=curabitur&habitasse=gravida&platea=nisi&dictumst=at&maecenas=nibh&ut=in&massa=hac&quis=habitasse&augue=platea&luctus=dictumst&tincidunt=aliquam&nulla=augue&mollis=quam&molestie=sollicitudin&lorem=vitae&quisque=consectetuer&ut=eget&erat=rutrum&curabitur=at&gravida=lorem&nisi=integer", - "projectDeveloper": "Vidoo", - "sector": "Gevee", - "projectType": "Midel", - "coveredByNDC": true, - "ndcLinkage": "Mycat", - "projectStatus": "est phasellus sit amet erat nulla tempus vivamus in felis eu sapien cursus vestibulum proin eu mi nulla ac enim", - "projectStatusDate": "12/24/2020", - "unitMetric": "Orange", - "methodology": "Yacero", - "methodologyVersion": 90, - "validationApproach": "a pede posuere nonummy integer non velit donec diam neque vestibulum eget vulputate ut", - "validationDate": "9/10/2021", - "estimatedAnnualAverageEmissionReduction": 87, - "projectTag": "Dabshots" + "warehouseProjectId": "3b84ef9e-610b-4144-95c7-f5cb6f2c4aa2", + "currentRegistry": "Feedfire", + "registryOfOrigin": "Skinte", + "originProjectID": "c5067a60-e329-4510-991c-b302fd00ec8d", + "program": "Eimbee", + "projectID": "c9d147e2-bc07-4e68-a76d-43424fa8cd4e", + "projectName": "Zoomcast", + "projectLink": "http://dailymotion.com/ligula/suspendisse/ornare/consequat/lectus/in.jpg?aliquam=consequat&lacus=nulla&morbi=nisl&quis=nunc&tortor=nisl&id=duis&nulla=bibendum&ultrices=felis&aliquet=sed&maecenas=interdum&leo=venenatis&odio=turpis&condimentum=enim&id=blandit&luctus=mi&nec=in&molestie=porttitor&sed=pede&justo=justo&pellentesque=eu&viverra=massa&pede=donec&ac=dapibus&diam=duis&cras=at&pellentesque=velit&volutpat=eu&dui=est&maecenas=congue&tristique=elementum&est=in&et=hac&tempus=habitasse&semper=platea&est=dictumst&quam=morbi&pharetra=vestibulum&magna=velit&ac=id&consequat=pretium&metus=iaculis&sapien=diam&ut=erat&nunc=fermentum&vestibulum=justo&ante=nec&ipsum=condimentum", + "projectDeveloper": "Cogibox", + "sector": "Viva", + "projectType": "Topicshots", + "coveredByNDC": 0, + "ndcLinkage": "Shuffletag", + "projectStatus": "in magna bibendum imperdiet nullam orci pede venenatis non sodales sed tincidunt eu felis fusce posuere felis sed lacus", + "projectStatusDate": "8/23/2021", + "unitMetric": "Fuscia", + "methodology": "Quatz", + "methodologyVersion": 43, + "validationApproach": "consectetuer eget rutrum at lorem integer tincidunt ante vel ipsum praesent blandit lacinia erat", + "validationDate": "11/22/2021", + "estimatedAnnualAverageEmissionReduction": 60, + "projectTag": "Kaymbo", + "createdAt": "11/22/2021", + "updatedAt": "11/22/2021" } ] diff --git a/src/models/units/units.model.js b/src/models/units/units.model.js index 7be70864..a54503d1 100644 --- a/src/models/units/units.model.js +++ b/src/models/units/units.model.js @@ -16,6 +16,7 @@ Unit.init( type: Sequelize.NUMBER, primaryKey: true, }, + ProjectId: Sequelize.STRING, owner: Sequelize.STRING, buyer: Sequelize.STRING, registry: Sequelize.STRING, diff --git a/src/models/units/units.stub.json b/src/models/units/units.stub.json index b0480459..d01d4f71 100644 --- a/src/models/units/units.stub.json +++ b/src/models/units/units.stub.json @@ -17,6 +17,7 @@ "correspondingAdjustment": "1", "unitTag": "tag1", "vintageId": 1, + "ProjectId": 1, "createdAt": "2022-11-05T14:41:00.000Z", "updatedAt": "2022-11-05T14:41:00.000Z" }, @@ -38,6 +39,7 @@ "correspondingAdjustment": "1", "unitTag": "tag2", "vintageId": 1, + "ProjectId": 2, "createdAt": "2020-11-05T14:41:00.000Z", "updatedAt": "2020-11-05T14:41:00.000Z" }, @@ -59,6 +61,7 @@ "correspondingAdjustment": "1", "unitTag": "tag3", "vintageId": 1, + "ProjectId": 3, "createdAt": "2021-11-05T14:41:00.000Z", "updatedAt": "2021-11-05T14:41:00.000Z" }, @@ -80,6 +83,7 @@ "correspondingAdjustment": "1", "unitTag": "tag4", "vintageId": 1, + "ProjectId": 1, "createdAt": "2025-11-05T14:41:00.000Z", "updatedAt": "2025-11-05T14:41:00.000Z" }, @@ -101,6 +105,7 @@ "correspondingAdjustment": "1", "unitTag": "tag4", "vintageId": 1, + "ProjectId": 1, "createdAt": "2030-11-05T14:41:00.000Z", "updatedAt": "2030-11-05T14:41:00.000Z" } diff --git a/src/routes/index.js b/src/routes/index.js index e090fe11..f71e7cf7 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -2,11 +2,14 @@ import express from 'express'; import bodyParser from 'body-parser'; +import cors from 'cors'; + import { V1Router } from './v1'; import { sequelize } from '../models/database'; const app = express(); +app.use(cors()); app.use(express.json()); app.use(bodyParser.urlencoded({ extended: false })); diff --git a/src/routes/v1/resources/projects.js b/src/routes/v1/resources/projects.js index a79b8e31..e81d998f 100644 --- a/src/routes/v1/resources/projects.js +++ b/src/routes/v1/resources/projects.js @@ -18,6 +18,7 @@ const querySchema = Joi.object({ currentRegistry: Joi.string().required(), registryOfOrigin: Joi.string().required(), originProjectId: Joi.string().required(), + projectID: Joi.string().required(), program: Joi.string().required(), warehouseProjectId: Joi.string().required(), projectName: Joi.string().required(), @@ -25,34 +26,25 @@ const querySchema = Joi.object({ projectDeveloper: Joi.string().required(), sector: Joi.string().required(), projectType: Joi.string().required(), - coveredByNDC: Joi.string().required(), + coveredByNDC: Joi.number().required(), NDCLinkage: Joi.string().required(), projectStatus: Joi.string().required(), projectStatusDate: Joi.string().required(), unitMetric: Joi.string().required(), methodology: Joi.string().required(), - methodologyVersion: Joi.string().required(), + methodologyVersion: Joi.number().required(), validationApproach: Joi.string().required(), validationDate: Joi.string().required(), projectTag: Joi.string().required(), - estimatedAnnualAverageEmmisionReduction: Joi.string().required(), + estimatedAnnualAverageEmissionReduction: Joi.string().required(), }); ProjectRouter.post('/', validator.body(querySchema), ProjectController.create); -const querySchemaUpdate = { - uuid: Joi.string().required(), - ...querySchema, -}; - -ProjectRouter.put( - '/', - validator.body(querySchemaUpdate), - ProjectController.update, -); +ProjectRouter.put('/', validator.body(querySchema), ProjectController.update); const querySchemaDelete = { - uuid: Joi.string().required(), + warehouseProjectId: Joi.string().required(), }; ProjectRouter.delete( diff --git a/src/routes/v1/resources/stagings.js b/src/routes/v1/resources/stagings.js index 5a01375a..8f71e7ba 100644 --- a/src/routes/v1/resources/stagings.js +++ b/src/routes/v1/resources/stagings.js @@ -1,7 +1,6 @@ 'use strict'; import express from 'express'; -import { StagingController } from './staging./../../controllers'; import Joi from 'joi'; import joiExpress from 'express-joi-validation'; import { StagingController } from '../../../controllers'; @@ -13,9 +12,9 @@ StagingRouter.get('/', (req, res) => { return StagingController.findAll(req, res); }); -const querySchemaDelete = { - id: Joi.string().required(), -}; +const querySchemaDelete = Joi.object({ + uuid: Joi.string().required(), +}); StagingRouter.delete( '/', diff --git a/src/server.js b/src/server.js index e9853ad5..04bd6fb7 100644 --- a/src/server.js +++ b/src/server.js @@ -6,7 +6,7 @@ import Debug from 'debug'; const debug = Debug('climate-warehouse:server'); -const port = 3000; +const port = 3030; const server = http.createServer(rootRouter); server.listen(port);