Skip to content
The source code for the Goteo APi - https://api.goteo.org
Python Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
extend
goteoapi
goteoapi_cli
goteoapi_digests
goteoapi_reports
.codeclimate.yml
.editorconfig
.gitignore
.travis.yml
INSTALL.md
LICENSE
README.md
TODO
Vagrantfile
config.py.example
config_test.py.dist
config_vagrant.py.dist
console
console.py
deployer
requirements
requirements.txt
run
run-tests
run.py
vagrant_provision.sh

README.md

GOTEO API

Build Status Code Climate Test Coverage

This is the code for the goteo api.

Please refer to the INSTALL.md file for info about installing this API.

Full documentation to use the official api can be found here: https://developers.goteo.org/doc/

Easy install using Vagrant:

The included Vagrantfile is ready to provision a ready-to-go system with a test database and all the required dependencies installed:

vagrant up
vagrant ssh
./run

Install/update dependencies:

./deployer

Run a test server on localhost:

./run

Flask command line order:

Cache clearing:

./console clearcache

Cache renewing:

./console renewcache

Crontab install for automatic cache renew:

./console crontab -i

Remove crontab install:

./console crontab -r

Running tests:

NOTE: Testing with the argument --reset-database will remove all tables in the test database!

Configure a proper config_test.py before testing

First time you may want to reset the test database:

./run-tests --reset-database

All tests at once (verbose):

./run-tests -v

Specific tests: (verbose, with echoes):

./run-tests goteoapi -v -s goteoapi/tests/testprojects.py

Running code coverage tests:

./run-tests --cover-html --with-coverage

Running code coverage tests with all packages:

./run-tests --cover-html --with-coverage --cover-package=goteoapi_reports --cover-package=goteoapi_digests

Tests uses nosetests. Same nosetests command arguments applies to run-tests script

Extending the API

To run the API with extra packages you must configure the variable MODULES int the file config.py (extra packages such as: goteoapi_reports, goteoapi_digests)

...

MODULES = {
    # reports endpoints
    'goteoapi_reports.controllers',
    # digests endpoints
    'goteoapi_digests.controllers'
}

...

Examples

Obtain a list of active projects:

curl -i --user "goteo:goteo" http://0.0.0.0:5000/projects

Getting details for a custom project:

curl -i --user "goteo:goteo" http://0.0.0.0:5000/projects/project-id

Filtering some data, in this case, all projectes published starting in october 2015:

curl --user "goteo:goteo" -i -X GET -H "Content-Type: application/json" -d '{"from_date":"2015-10-01"}' http://localhost:5000/projects/

Obtaining an error message:

curl -i --user "goteo:goteo" -X GET -H "Content-Type: application/json" http://0.0.0.0:5000/projects/

Response:

HTTP/1.0 400 BAD REQUEST
Content-Type: application/json
Content-Length: 53
Access-Control-Allow-Origin: *
Access-Control-Allow-Credentials: true
Access-Control-Allow-Methods: POST, OPTIONS, GET
Access-Control-Allow-Headers: Authorization
Access-Control-Max-Age: 1
Server: Werkzeug/0.10.4 Python/2.7.6
Date: Mon, 01 Feb 2016 13:36:53 GMT

{
    "message": "Bad Request",
    "status": 400
}

Check the full documentation here: https://developers.goteo.org/doc/

License

The code licensed here under the GNU Affero General Public License, version 3 AGPL-3.0 has been developed by the Goteo team led by Platoniq and subseque ntly transferred to the Fundación Goteo, as detailed in http://www.goteo.org/about#info6

This is a web tool that allows the receipt, review and publishing of collective campaigns for their collective funding and the receiving of collaborations a s well as the dynamic visualization of the support received, classification of initiatives and campaign tracking. The system also permits secure and distrib uted communication with users and between users, administration of highlighted projects on the home page and the creation of periodical publications such as blogs, a FAQ section and static pages.

You can’t perform that action at this time.