1. Introduction

This document contains generated documentation for AMPnet project service. Project service contains all endpoints need to manage projects and organizations for AMPnet crowdfunding project. Source code is available on Github

2. Organization API

All requests need header: Authorization: Bearer JWT.

2.1. Create organization

Request
POST /organization HTTP/1.1
Content-Type: multipart/form-data; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=image.png
Content-Type: image/png

ImageData
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request; filename=request.json
Content-Type: application/json

{"name":"Organization name","description":"Organization description"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 334

{
  "uuid" : "2159dc89-5ff4-4823-b3d6-3cfadd5a0e88",
  "name" : "Organization name",
  "created_at" : "2021-04-01T15:14:15.915Z",
  "approved" : true,
  "documents" : [ ],
  "description" : "Organization description",
  "header_image" : "image link",
  "coop" : "ampnet-test",
  "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
}

2.2. Get personal organizations

Request
GET /organization/personal HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 774

{
  "organizations" : [ {
    "uuid" : "a9b2098f-fcd3-4135-a354-677caa9941c5",
    "name" : "First organization",
    "created_at" : "2021-04-01T15:14:15.59Z",
    "approved" : true,
    "description" : "Organization description",
    "header_image" : "Organization header image",
    "project_count" : 1,
    "coop" : "ampnet-test",
    "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
  }, {
    "uuid" : "b05c2585-a47f-42dc-878e-1ce06c6633ee",
    "name" : "Second organization",
    "created_at" : "2021-04-01T15:14:15.607Z",
    "approved" : true,
    "description" : "Organization description",
    "header_image" : "Organization header image",
    "project_count" : 2,
    "coop" : "ampnet-test",
    "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
  } ]
}

2.3. Update organization

Request
POST /organization/5c146ab2-ad3a-47e4-a601-09cbb82c74b3/updates HTTP/1.1
Content-Type: multipart/form-data; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request; filename=request.json
Content-Type: application/json

{"description":"Organization description","active":false}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=image.png
Content-Type: image/png

ImageData
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 333

{
  "uuid" : "5c146ab2-ad3a-47e4-a601-09cbb82c74b3",
  "name" : "test organization",
  "created_at" : "2021-04-01T15:14:15.518Z",
  "approved" : true,
  "description" : "Organization description",
  "header_image" : "image link",
  "coop" : "ampnet-test",
  "active" : false,
  "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
}

2.4. Documents

2.4.1. Add a document for organization

Request
POST /organization/34d65fce-822e-40dc-9d6f-65a8cbd1b1a7/document HTTP/1.1
Content-Type: multipart/form-data; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=file; filename=test.txt
Content-Type: text/plain

Some document data
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 166

{
  "id" : 30,
  "link" : "link",
  "name" : "test.txt",
  "type" : "text/plain",
  "size" : 18,
  "created_at" : "2021-04-01T15:14:15.47Z",
  "purpose" : "GENERIC"
}

2.4.2. Remove organization document

Request
DELETE /organization/64adbecf-2073-4c8c-a122-9d8b52d12135/document/35 HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 3

{ }

2.5. Organization Invitation

2.5.1. Get a list of invitations

Request
GET /invites/me/ HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 233

{
  "organization_invites" : [ {
    "organization_uuid" : "a991c627-8d6f-4f8e-9654-bd0a3efe98ee",
    "organization_name" : "Test org",
    "role" : "ORG_MEMBER",
    "organization_header_image" : "Organization header image"
  } ]
}

2.5.2. Invite user to organization

Send invitation
Request
POST /invites/organization/d29781f4-a7ce-4e82-9dc3-3be32d04b12e/invite HTTP/1.1
Content-Type: application/json
Content-Length: 57
Host: localhost:8080

{
  "emails" : [ "[email protected]", "[email protected]" ]
}
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 3

{ }
Failed to send invitation without organization admin role

User missing a privilege: OrganizationPrivilegeType.PW_USERS

Request
POST /invites/organization/620cc83c-3f42-4a80-bfb7-2cbcce08a610/invite HTTP/1.1
Content-Type: application/json
Content-Length: 57
Host: localhost:8080

{
  "emails" : [ "[email protected]", "[email protected]" ]
}
Response
HTTP/1.1 403 Forbidden
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Revoke invitation
Request
POST /invites/organization/a498cdfb-3709-4deb-82c7-bd779881cc60/[email protected]/revoke HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 3

{ }

2.5.3. Accept invitation

Request
POST /invites/me/3fb15e2a-714b-47db-9ee5-9d759edfee6d/accept HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

2.5.4. Reject invitation

Request
POST /invites/me/02f1dad6-4b4b-4630-afe0-72de0783b2a4/reject HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

2.5.5. Get a list of pending invitations

Request
GET /invites/organization/4f6f07c0-e330-47dd-87ac-01f00a5c77ac HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 145

{
  "pending_invites" : [ {
    "user_email" : "[email protected]",
    "role" : "ORG_MEMBER",
    "created_at" : "2021-04-01T15:14:12.929Z"
  } ]
}

2.6. Organization Members

2.6.1. List all members

Request
GET /organization/5abbc08f-8b99-4754-b6ff-221c614c9fa0/members HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 456

{
  "members" : [ {
    "uuid" : "5deea8cd-ea29-44e5-b0af-715ec33e2d6a",
    "first_name" : "ss",
    "last_name" : "ll",
    "email" : "[email protected]",
    "role" : "ORG_MEMBER",
    "member_since" : "2021-04-01T15:14:16.466Z"
  }, {
    "uuid" : "954f9ba5-d37f-44e8-be59-0c7b137329d5",
    "first_name" : "first",
    "last_name" : "last",
    "email" : "[email protected]",
    "role" : "ORG_ADMIN",
    "member_since" : "2021-04-01T15:14:16.468Z"
  } ]
}

2.6.2. Delete a member

Request
DELETE /organization/ea1ab2cc-0aa7-4559-88fb-9044f6cc453d/members/e48e7415-dbf1-4ace-a65b-a0100ce600b8 HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 3

{ }

2.6.3. Update organization role

Request
POST /organization/d5d3547e-ffa2-4e52-a1fe-b0b64947d8cb/members HTTP/1.1
Content-Type: application/json
Content-Length: 84
Host: localhost:8080

{
  "member_uuid" : "7448a87b-019b-4de9-afe6-61b7ba1adf28",
  "role" : "ORG_ADMIN"
}
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 3

{ }

3. Project API

All requests need header: Authorization: Bearer JWT.

3.1. Create project

3.1.1. Successfully create

Only organization admin can create project. Tags value is optional.

Request
POST /project HTTP/1.1
Content-Type: application/json
Content-Length: 497
Host: localhost:8080

{
  "organization_uuid" : "fed4774d-d03b-40b0-bc10-1c731eed5a73",
  "name" : "Das project",
  "description" : "description",
  "location" : {
    "lat" : 12.234,
    "long" : 23.432
  },
  "roi" : {
    "from" : 2.22,
    "to" : 7.77
  },
  "start_date" : "2021-04-01T15:14:17.668Z",
  "end_date" : "2021-05-01T15:14:17.668Z",
  "expected_funding" : 1000000,
  "currency" : "EUR",
  "min_per_user" : 1,
  "max_per_user" : 1000000,
  "active" : true,
  "tags" : null,
  "short_description" : null
}
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 776

{
  "uuid" : "cbcc8525-15d5-44ca-a68f-a0733528258b",
  "name" : "Das project",
  "description" : "description",
  "location" : {
    "lat" : 12.234,
    "long" : 23.432
  },
  "roi" : {
    "from" : 2.22,
    "to" : 7.77
  },
  "start_date" : "2021-04-01T15:14:17.668Z",
  "end_date" : "2021-05-01T15:14:17.668Z",
  "expected_funding" : 1000000,
  "currency" : "EUR",
  "min_per_user" : 1,
  "max_per_user" : 1000000,
  "main_image" : null,
  "active" : true,
  "tags" : [ ],
  "gallery" : [ ],
  "news" : [ ],
  "documents" : [ ],
  "wallet" : null,
  "coop" : "ampnet-test",
  "short_description" : null,
  "organization" : {
    "uuid" : "fed4774d-d03b-40b0-bc10-1c731eed5a73",
    "name" : "Test organization"
  },
  "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
}

3.1.2. Cannot create project without privilege

User cannot create project without admin role in organization, privilege: OrganizationPrivilegeType.PW_PROJECT

Request
POST /project HTTP/1.1
Content-Type: application/json
Content-Length: 497
Host: localhost:8080

{
  "organization_uuid" : "ef703169-7b73-450e-848d-10e5989de410",
  "name" : "Error project",
  "description" : "description",
  "location" : {
    "lat" : 12.234,
    "long" : 23.432
  },
  "roi" : {
    "from" : 2.22,
    "to" : 7.77
  },
  "start_date" : "2021-04-01T15:14:18.45Z",
  "end_date" : "2021-05-01T15:14:18.45Z",
  "expected_funding" : 1000000,
  "currency" : "EUR",
  "min_per_user" : 1,
  "max_per_user" : 1000000,
  "active" : true,
  "tags" : null,
  "short_description" : null
}
Response
HTTP/1.1 403 Forbidden
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 224

{
  "description" : "Organization membership missing",
  "err_code" : "0608",
  "message" : "User 89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4 is not a member of organization ef703169-7b73-450e-848d-10e5989de410",
  "errors" : { }
}

3.2. Update

All values are optional. Only provided values will be updated. For list values: tags and news, new list overrides old values. Adding new image overrides old main image.

Request
PUT /project/581ded78-c130-43a6-9ed6-395b3490678c HTTP/1.1
Content-Type: multipart/form-data; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=request; filename=request.json
Content-Type: application/json

{"name":"new name","description":"description","location":{"lat":22.1,"long":0.3},"roi":{"from":1.11,"to":5.55},"active":false,"tags":["tag"],"news":null,"short_description":"new short description"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=image.png
Content-Type: image/png

ImageData
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=documents; filename=test.txt
Content-Type: text/plain

Document with bigger size
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=documents; filename=test2.pdf
Content-Type: application/pdf

Smaller document
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1611

{
  "uuid" : "581ded78-c130-43a6-9ed6-395b3490678c",
  "name" : "new name",
  "description" : "description",
  "location" : {
    "lat" : 22.1,
    "long" : 0.3
  },
  "roi" : {
    "from" : 1.11,
    "to" : 5.55
  },
  "start_date" : "2021-04-01T15:14:17.93Z",
  "end_date" : "2021-05-01T15:14:17.93Z",
  "expected_funding" : 10000000,
  "currency" : "EUR",
  "min_per_user" : 10,
  "max_per_user" : 10000,
  "main_image" : "image-link",
  "active" : false,
  "tags" : [ "tag" ],
  "gallery" : [ ],
  "news" : [ ],
  "documents" : [ {
    "id" : 57,
    "link" : "terms-of-services",
    "name" : "My project",
    "type" : "PDF",
    "size" : 100,
    "created_at" : "2021-04-01T15:14:17.93Z",
    "purpose" : "TERMS"
  }, {
    "id" : 58,
    "link" : "document-link2",
    "name" : "test2.pdf",
    "type" : "application/pdf",
    "size" : 16,
    "created_at" : "2021-04-01T15:14:17.95Z",
    "purpose" : "GENERIC"
  }, {
    "id" : 59,
    "link" : "document-link1",
    "name" : "test.txt",
    "type" : "text/plain",
    "size" : 25,
    "created_at" : "2021-04-01T15:14:17.952Z",
    "purpose" : "GENERIC"
  } ],
  "wallet" : {
    "uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4",
    "owner" : "581ded78-c130-43a6-9ed6-395b3490678c",
    "activation_data" : "activation data",
    "type" : "PROJECT",
    "currency" : "EUR",
    "hash" : "wallet_hash"
  },
  "coop" : "ampnet-test",
  "short_description" : "new short description",
  "organization" : {
    "uuid" : "456d3bb9-8e42-48e3-be13-983635fa068d",
    "name" : "Test organization"
  },
  "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
}

3.3. Documents

3.3.1. Add document for project

Request
POST /project/0ee0b654-4b43-4f23-babb-7bc84e951ed6/document HTTP/1.1
Content-Type: multipart/form-data; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=file; filename=test.txt
Content-Type: text/plain

Some document data
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 177

{
  "id" : 43,
  "link" : "document-link1",
  "name" : "test.txt",
  "type" : "text/plain",
  "size" : 18,
  "created_at" : "2021-04-01T15:14:16.958Z",
  "purpose" : "GENERIC"
}

3.3.2. Remove project document

Request
DELETE /project/9a5fe638-27fb-4240-b356-b6cba5bdf96b/document/45 HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

3.4. Images

3.4.1. Add main image

Request
POST /project/763270ea-e6c7-43d1-8dc5-f4fb0f9c256e/image/main HTTP/1.1
Content-Type: multipart/form-data; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=image.png
Content-Type: image/png

ImageData
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Request
POST /project/1aaa8ca5-692a-4506-9c1a-7cfc7a1e336d/image/gallery HTTP/1.1
Content-Type: multipart/form-data; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: localhost:8080

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=image; filename=image.png
Content-Type: image/png

ImageData
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Request
DELETE /project/1b66b035-797e-450d-b528-ac4dd8e7eadc/image/gallery HTTP/1.1
Content-Type: application/json
Content-Length: 35
Host: localhost:8080

{
  "images" : [ "image-link-1" ]
}
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

3.5. Updates

3.5.1. Get

Request
GET /public/project/a1224084-1779-4733-8a44-ab0d4734ed08/updates?size=10&page=0&sort=createdAt%2Cdesc HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 462

{
  "updates" : [ {
    "id" : 4,
    "project_uuid" : "a1224084-1779-4733-8a44-ab0d4734ed08",
    "title" : "Webinar",
    "content" : "Fundamentals of software architecture",
    "author" : "Some user",
    "date" : "2021-04-01T15:14:16.828Z"
  }, {
    "id" : 3,
    "project_uuid" : "a1224084-1779-4733-8a44-ab0d4734ed08",
    "title" : "Some title",
    "content" : "Some content",
    "author" : "Some user",
    "date" : "2021-04-01T15:14:16.826Z"
  } ]
}

3.5.2. Create

Request
POST /project/457c4d68-b72e-4444-a495-bc1611901db8/updates HTTP/1.1
Content-Type: application/json
Content-Length: 58
Host: localhost:8080

{
  "title" : "Some title",
  "content" : "Some content"
}
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 195

{
  "id" : 1,
  "project_uuid" : "457c4d68-b72e-4444-a495-bc1611901db8",
  "title" : "Some title",
  "content" : "Some content",
  "author" : "First Last",
  "date" : "2021-04-01T15:14:16.672Z"
}

3.5.3. Delete

Request
DELETE /project/eb53517c-e672-4b58-aa9b-7072dc152f87/updates/2 HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

3.6. Get personal projects

Request
GET /project/personal HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 2372

{
  "projects" : [ {
    "uuid" : "c89e3eb1-2b75-460e-9e90-337a367399ba",
    "name" : "project1",
    "description" : null,
    "location" : {
      "lat" : 0.1,
      "long" : 1.0
    },
    "roi" : {
      "from" : 4.44,
      "to" : 9.99
    },
    "start_date" : "2021-04-01T15:14:18.604Z",
    "end_date" : "2021-05-01T15:14:18.604Z",
    "expected_funding" : 10000000,
    "currency" : "EUR",
    "min_per_user" : 10,
    "max_per_user" : 10000,
    "main_image" : "main_image",
    "active" : true,
    "tags" : [ "tag_1", "tag_2" ],
    "coop" : "ampnet-test",
    "short_description" : "short description",
    "organization" : {
      "uuid" : "edbb3e8b-7277-43e4-b92a-e1361b5aec28",
      "name" : "some org"
    },
    "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
  }, {
    "uuid" : "3a745d56-9d7a-4627-bf3c-75fd11fbb079",
    "name" : "project2",
    "description" : null,
    "location" : {
      "lat" : 0.1,
      "long" : 1.0
    },
    "roi" : {
      "from" : 4.44,
      "to" : 9.99
    },
    "start_date" : "2021-04-01T15:14:18.61Z",
    "end_date" : "2021-05-01T15:14:18.61Z",
    "expected_funding" : 10000000,
    "currency" : "EUR",
    "min_per_user" : 10,
    "max_per_user" : 10000,
    "main_image" : "main_image",
    "active" : true,
    "tags" : [ "tag_1", "tag_2" ],
    "coop" : "ampnet-test",
    "short_description" : "short description",
    "organization" : {
      "uuid" : "edbb3e8b-7277-43e4-b92a-e1361b5aec28",
      "name" : "some org"
    },
    "owner_uuid" : "cee70ba3-20b2-4094-8cb6-20e9ca2a83f9"
  }, {
    "uuid" : "8718268b-ac61-4f1a-9ac9-559a2661a41a",
    "name" : "project3",
    "description" : null,
    "location" : {
      "lat" : 0.1,
      "long" : 1.0
    },
    "roi" : {
      "from" : 4.44,
      "to" : 9.99
    },
    "start_date" : "2021-04-01T15:14:18.625Z",
    "end_date" : "2021-05-01T15:14:18.625Z",
    "expected_funding" : 10000000,
    "currency" : "EUR",
    "min_per_user" : 10,
    "max_per_user" : 10000,
    "main_image" : "main_image",
    "active" : true,
    "tags" : [ "tag_1", "tag_2" ],
    "coop" : "ampnet-test",
    "short_description" : "short description",
    "organization" : {
      "uuid" : "f2439b44-8a70-47b5-a02b-14ed6463d796",
      "name" : "second org"
    },
    "owner_uuid" : "042ce4ce-e5ef-4dd7-b0eb-ffd69fa53d18"
  } ],
  "page" : 0,
  "total_pages" : 1
}

4. Public API

4.1. Project

4.1.1. Get project

Request
GET /public/project/9275aad8-12fb-4541-bb09-6b0098aee32c HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1226

{
  "uuid" : "9275aad8-12fb-4541-bb09-6b0098aee32c",
  "name" : "My project",
  "description" : "description",
  "location" : {
    "lat" : 0.1,
    "long" : 1.0
  },
  "roi" : {
    "from" : 4.44,
    "to" : 9.99
  },
  "start_date" : "2021-04-01T15:14:14.903Z",
  "end_date" : "2021-05-01T15:14:14.903Z",
  "expected_funding" : 10000000,
  "currency" : "EUR",
  "min_per_user" : 10,
  "max_per_user" : 10000,
  "main_image" : "main_image",
  "active" : true,
  "tags" : [ "tag_1", "tag_2" ],
  "gallery" : [ ],
  "news" : [ ],
  "documents" : [ {
    "id" : 22,
    "link" : "terms-of-services",
    "name" : "My project",
    "type" : "PDF",
    "size" : 100,
    "created_at" : "2021-04-01T15:14:14.903Z",
    "purpose" : "TERMS"
  } ],
  "wallet" : {
    "uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4",
    "owner" : "9275aad8-12fb-4541-bb09-6b0098aee32c",
    "activation_data" : "activation data",
    "type" : "PROJECT",
    "currency" : "EUR",
    "hash" : "wallet_hash"
  },
  "coop" : "ampnet-test",
  "short_description" : "short description",
  "organization" : {
    "uuid" : "a7a16b47-aa7c-42f2-92a7-909be4e3e1fa",
    "name" : "Test organization"
  },
  "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
}

4.1.2. Get all projects

List of all projects is pageable. Define size of the list using param: size and page number with param: page. List can be sorted using param: sort (e.g. sort=createdAt,desc).

Request
GET /public/project?coop=ampnet-test&size=10&page=0&sort=createdAt%2Cdesc HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: max-age=60
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: DENY
Content-Length: 1628

{
  "projects" : [ {
    "uuid" : "0787d8ff-e047-4861-a05d-4fb988346b21",
    "name" : "Second project",
    "description" : null,
    "location" : {
      "lat" : 0.1,
      "long" : 1.0
    },
    "roi" : {
      "from" : 4.44,
      "to" : 9.99
    },
    "start_date" : "2021-04-01T15:14:14.986Z",
    "end_date" : "2021-05-01T15:14:14.986Z",
    "expected_funding" : 10000000,
    "currency" : "EUR",
    "min_per_user" : 10,
    "max_per_user" : 10000,
    "main_image" : "main_image",
    "active" : true,
    "tags" : [ "tag_1", "tag_2" ],
    "coop" : "ampnet-test",
    "short_description" : "short description",
    "organization" : {
      "uuid" : "ecd47c48-74f7-4656-b5dc-5d7480d85ecb",
      "name" : "Second organization"
    },
    "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
  }, {
    "uuid" : "91c8ded2-dfb5-4b65-998f-817acbf2b7ac",
    "name" : "My project",
    "description" : null,
    "location" : {
      "lat" : 0.1,
      "long" : 1.0
    },
    "roi" : {
      "from" : 4.44,
      "to" : 9.99
    },
    "start_date" : "2021-04-01T15:14:14.976Z",
    "end_date" : "2021-05-01T15:14:14.976Z",
    "expected_funding" : 10000000,
    "currency" : "EUR",
    "min_per_user" : 10,
    "max_per_user" : 10000,
    "main_image" : "main_image",
    "active" : true,
    "tags" : [ "tag_1", "tag_2" ],
    "coop" : "ampnet-test",
    "short_description" : "short description",
    "organization" : {
      "uuid" : "31473218-5c65-4434-848f-0c377d726cfa",
      "name" : "Test organization"
    },
    "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
  } ],
  "page" : 0,
  "total_pages" : 1
}

4.1.3. Get active projects

List of active projects is pageable. Define size of the list using param: size and page number with param: page. List can be sorted using param: sort (e.g. sort=createdAt,desc).

Request
GET /public/project/active?coop=ampnet-test&size=10&page=0&sort=createdAt%2Cdesc HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1190

{
  "projects_wallets" : [ {
    "project" : {
      "uuid" : "5b60eb4a-f459-41db-98f9-83019af19807",
      "name" : "Active project",
      "description" : null,
      "location" : {
        "lat" : 0.1,
        "long" : 1.0
      },
      "roi" : {
        "from" : 4.44,
        "to" : 9.99
      },
      "start_date" : "2021-03-31T15:14:13.821Z",
      "end_date" : "2021-05-01T15:14:13.821Z",
      "expected_funding" : 10000000,
      "currency" : "EUR",
      "min_per_user" : 10,
      "max_per_user" : 10000,
      "main_image" : "main_image",
      "active" : true,
      "tags" : [ "tag_1", "tag_2" ],
      "coop" : "ampnet-test",
      "short_description" : "short description",
      "organization" : {
        "uuid" : "0689bb40-c423-403f-91af-f945e8d254a0",
        "name" : "Test organization"
      },
      "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
    },
    "wallet" : {
      "uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4",
      "owner" : "5b60eb4a-f459-41db-98f9-83019af19807",
      "activation_data" : "activation data",
      "type" : "PROJECT",
      "currency" : "EUR",
      "hash" : "wallet_hash"
    }
  } ],
  "page" : 0,
  "total_pages" : 1
}

4.1.4. Count all active projects

Request
GET /public/project/active/count?coop=ampnet-test HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: max-age=60
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: DENY
Content-Length: 27

{
  "active_projects" : 1
}

4.1.5. Get projects by tags

List of all projects is pageable. Define size of the list using param: size and page number with param: page. List can be sorted using param: sort (e.g. sort=createdAt,desc).

Request
GET /public/project?coop=ampnet-test&tags=wind&tags=green&size=10&page=0&sort=createdAt%2Cdesc HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: max-age=60
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: DENY
Content-Length: 837

{
  "projects" : [ {
    "uuid" : "6806f9bf-687f-4c3d-a2a7-8e1db3c80d2d",
    "name" : "Project 2",
    "description" : null,
    "location" : {
      "lat" : 0.1,
      "long" : 1.0
    },
    "roi" : {
      "from" : 4.44,
      "to" : 9.99
    },
    "start_date" : "2021-04-01T15:14:14.356Z",
    "end_date" : "2021-05-01T15:14:14.356Z",
    "expected_funding" : 10000000,
    "currency" : "EUR",
    "min_per_user" : 10,
    "max_per_user" : 10000,
    "main_image" : "main_image",
    "active" : true,
    "tags" : [ "wind", "green" ],
    "coop" : "ampnet-test",
    "short_description" : "short description",
    "organization" : {
      "uuid" : "227d46c6-2ec5-4c4d-93fe-9c269073519c",
      "name" : "Test organization"
    },
    "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
  } ],
  "page" : 0,
  "total_pages" : 1
}

4.1.6. Get all project tags

Request
GET /public/project/tags?coop=ampnet-test HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: max-age=60
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: DENY
Content-Length: 43

{
  "tags" : [ "green", "solar", "wind" ]
}

4.1.7. Get Project Updates

Request
GET /public/project/a1224084-1779-4733-8a44-ab0d4734ed08/updates?size=10&page=0&sort=createdAt%2Cdesc HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 462

{
  "updates" : [ {
    "id" : 4,
    "project_uuid" : "a1224084-1779-4733-8a44-ab0d4734ed08",
    "title" : "Webinar",
    "content" : "Fundamentals of software architecture",
    "author" : "Some user",
    "date" : "2021-04-01T15:14:16.828Z"
  }, {
    "id" : 3,
    "project_uuid" : "a1224084-1779-4733-8a44-ab0d4734ed08",
    "title" : "Some title",
    "content" : "Some content",
    "author" : "Some user",
    "date" : "2021-04-01T15:14:16.826Z"
  } ]
}

4.2. Organization

4.2.1. Get all projects for organization

Field wallet is nullable because the project can exist without a wallet.

Request
GET /public/project/organization/4d50aeeb-e23d-4b3a-a5b0-43bd70a54bac?coop=ampnet-test HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 2066

{
  "projects_wallets" : [ {
    "project" : {
      "uuid" : "589abc61-d738-46a4-a0fa-d9d23c0eb024",
      "name" : "Project 1",
      "description" : null,
      "location" : {
        "lat" : 0.1,
        "long" : 1.0
      },
      "roi" : {
        "from" : 4.44,
        "to" : 9.99
      },
      "start_date" : "2021-04-01T15:14:14.191Z",
      "end_date" : "2021-05-01T15:14:14.191Z",
      "expected_funding" : 10000000,
      "currency" : "EUR",
      "min_per_user" : 10,
      "max_per_user" : 10000,
      "main_image" : "main_image",
      "active" : true,
      "tags" : [ "tag_1", "tag_2" ],
      "coop" : "ampnet-test",
      "short_description" : "short description",
      "organization" : {
        "uuid" : "4d50aeeb-e23d-4b3a-a5b0-43bd70a54bac",
        "name" : "Test organization"
      },
      "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
    },
    "wallet" : {
      "uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4",
      "owner" : "589abc61-d738-46a4-a0fa-d9d23c0eb024",
      "activation_data" : "activation data",
      "type" : "PROJECT",
      "currency" : "EUR",
      "hash" : "wallet_hash"
    }
  }, {
    "project" : {
      "uuid" : "0be7b747-53b0-42fc-8ecd-ecfe3eb83c6e",
      "name" : "Project 2",
      "description" : null,
      "location" : {
        "lat" : 0.1,
        "long" : 1.0
      },
      "roi" : {
        "from" : 4.44,
        "to" : 9.99
      },
      "start_date" : "2021-04-01T15:14:14.212Z",
      "end_date" : "2021-05-01T15:14:14.212Z",
      "expected_funding" : 10000000,
      "currency" : "EUR",
      "min_per_user" : 10,
      "max_per_user" : 10000,
      "main_image" : "main_image",
      "active" : true,
      "tags" : [ "tag_1", "tag_2" ],
      "coop" : "ampnet-test",
      "short_description" : "short description",
      "organization" : {
        "uuid" : "4d50aeeb-e23d-4b3a-a5b0-43bd70a54bac",
        "name" : "Test organization"
      },
      "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
    },
    "wallet" : null
  } ],
  "page" : 0,
  "total_pages" : 1
}

4.2.2. Get organization by id

Request
GET /public/organization/34ad3350-3b8c-47c3-95dd-26ad1f57737f HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: max-age=60
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: DENY
Content-Length: 555

{
  "uuid" : "34ad3350-3b8c-47c3-95dd-26ad1f57737f",
  "name" : "test organization",
  "created_at" : "2021-04-01T15:14:15.31Z",
  "approved" : true,
  "documents" : [ {
    "id" : 25,
    "link" : "link",
    "name" : "name",
    "type" : "document/type",
    "size" : 100,
    "created_at" : "2021-04-01T15:14:15.314Z",
    "purpose" : "GENERIC"
  } ],
  "description" : "Organization description",
  "header_image" : "Organization header image",
  "project_count" : 2,
  "coop" : "ampnet-test",
  "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
}

4.2.3. Get all organizations

List of all organizations is pageable. Define size of the list using param: size and page number with param: page. List can be sorted using param: sort (e.g. sort=createdAt,desc).

Request
GET /public/organization?size=10&page=0&sort=createdAt%2Cdesc HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: max-age=60
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: DENY
Content-Length: 1146

{
  "organizations" : [ {
    "uuid" : "264d060a-043d-4543-a733-17e0e8764cbd",
    "name" : "test 3",
    "created_at" : "2021-04-01T15:14:15.211Z",
    "approved" : true,
    "description" : "Organization description",
    "header_image" : "Organization header image",
    "coop" : "ampnet-test",
    "active" : true,
    "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
  }, {
    "uuid" : "91025bbf-1bd2-4269-af8b-9f9a97a931d3",
    "name" : "test 2",
    "created_at" : "2021-04-01T15:14:15.209Z",
    "approved" : true,
    "description" : "Organization description",
    "header_image" : "Organization header image",
    "coop" : "ampnet-test",
    "active" : true,
    "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
  }, {
    "uuid" : "a5e6e0a1-15e1-4144-a419-a9a025a80963",
    "name" : "test organization",
    "created_at" : "2021-04-01T15:14:15.205Z",
    "approved" : true,
    "description" : "Organization description",
    "header_image" : "Organization header image",
    "coop" : "ampnet-test",
    "active" : true,
    "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
  } ],
  "page" : 0,
  "total_pages" : 1
}

4.2.4. List all public members

Request
GET /public/organization/eb6c6f95-1b1c-4f63-90cf-d5272233febe/members HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Cache-Control: max-age=60
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
X-Frame-Options: DENY
Content-Length: 286

{
  "members" : [ {
    "first_name" : "admin",
    "last_name" : "admin",
    "role" : "ORG_ADMIN",
    "member_since" : "2021-04-01T15:14:15.13Z"
  }, {
    "first_name" : "ss",
    "last_name" : "ll",
    "role" : "ORG_MEMBER",
    "member_since" : "2021-04-01T15:14:15.133Z"
  } ]
}

4.3. Search organizations and projects by name

Request
GET /public/search?name=Pro&coop=ampnet-test&size=10&page=0 HTTP/1.1
Host: localhost:8080
Response
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 2013

{
  "organizations" : [ {
    "uuid" : "a7c99443-d49d-46ab-8a76-ce5bebcea942",
    "name" : "The Prospect Organization",
    "created_at" : "2021-04-01T15:14:16.179Z",
    "approved" : true,
    "description" : "Organization description",
    "header_image" : "Organization header image",
    "coop" : "ampnet-test",
    "active" : true,
    "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
  } ],
  "projects" : [ {
    "uuid" : "9cfce9ea-61af-44c4-8903-61313f19490b",
    "name" : "The first project",
    "description" : null,
    "location" : {
      "lat" : 0.1,
      "long" : 1.0
    },
    "roi" : {
      "from" : 4.44,
      "to" : 9.99
    },
    "start_date" : "2021-04-01T15:14:16.185Z",
    "end_date" : "2021-05-01T15:14:16.185Z",
    "expected_funding" : 10000000,
    "currency" : "EUR",
    "min_per_user" : 10,
    "max_per_user" : 10000,
    "main_image" : "main_image",
    "active" : true,
    "tags" : [ "tag_1", "tag_2" ],
    "coop" : "ampnet-test",
    "short_description" : "short description",
    "organization" : {
      "uuid" : "a7c99443-d49d-46ab-8a76-ce5bebcea942",
      "name" : "The Prospect Organization"
    },
    "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
  }, {
    "uuid" : "942dfd69-d5d7-463a-983f-585bbd1650bc",
    "name" : "The projcccp",
    "description" : null,
    "location" : {
      "lat" : 0.1,
      "long" : 1.0
    },
    "roi" : {
      "from" : 4.44,
      "to" : 9.99
    },
    "start_date" : "2021-04-01T15:14:16.197Z",
    "end_date" : "2021-05-01T15:14:16.197Z",
    "expected_funding" : 10000000,
    "currency" : "EUR",
    "min_per_user" : 10,
    "max_per_user" : 10000,
    "main_image" : "main_image",
    "active" : true,
    "tags" : [ "tag_1", "tag_2" ],
    "coop" : "ampnet-test",
    "short_description" : "short description",
    "organization" : {
      "uuid" : "a7c99443-d49d-46ab-8a76-ce5bebcea942",
      "name" : "The Prospect Organization"
    },
    "owner_uuid" : "89fb3b1c-9c0a-11e9-a2a3-2a2ae2dbcce4"
  } ]
}