{"id":13791370,"url":"https://github.com/fakenine/omniauth-marvin","last_synced_at":"2025-05-12T10:31:42.382Z","repository":{"id":1606524,"uuid":"42707783","full_name":"fakenine/omniauth-marvin","owner":"fakenine","description":"42 API OAuth2 strategy for OmniAuth","archived":false,"fork":false,"pushed_at":"2023-11-06T13:34:34.000Z","size":89,"stargazers_count":15,"open_issues_count":0,"forks_count":8,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-03T17:03:08.263Z","etag":null,"topics":["devise","omniauth","omniauth-marvin"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fakenine.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-09-18T07:59:11.000Z","updated_at":"2025-03-04T22:52:54.000Z","dependencies_parsed_at":"2024-08-03T22:14:55.321Z","dependency_job_id":null,"html_url":"https://github.com/fakenine/omniauth-marvin","commit_stats":{"total_commits":63,"total_committers":5,"mean_commits":12.6,"dds":0.07936507936507942,"last_synced_commit":"3ab5b8794237db93834817de9b8df60fa766f0bf"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fakenine%2Fomniauth-marvin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fakenine%2Fomniauth-marvin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fakenine%2Fomniauth-marvin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fakenine%2Fomniauth-marvin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fakenine","download_url":"https://codeload.github.com/fakenine/omniauth-marvin/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253719967,"owners_count":21952934,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["devise","omniauth","omniauth-marvin"],"created_at":"2024-08-03T22:00:59.394Z","updated_at":"2025-05-12T10:31:42.076Z","avatar_url":"https://github.com/fakenine.png","language":"Ruby","funding_links":[],"categories":["42 API"],"sub_categories":["Wrappers"],"readme":"# Omniauth Marvin\n\n[![Build Status](https://travis-ci.org/fakenine/omniauth-marvin.svg)](https://travis-ci.org/fakenine/omniauth-marvin) [![Maintainability](https://api.codeclimate.com/v1/badges/3c2ac09cff4d46183947/maintainability)](https://codeclimate.com/github/fakenine/omniauth-marvin/maintainability) [![Coverage Status](https://coveralls.io/repos/fakenine/omniauth-marvin/badge.svg?branch=master\u0026service=github)](https://coveralls.io/github/fakenine/omniauth-marvin?branch=master)\n\nOmniAuth OAuth2 strategy for 42 School.\n\n## Installation\n\nAdd this line to your application's Gemfile:\n\n```ruby\ngem 'omniauth-marvin', '~\u003e 1.2.0'\n```\n\nOr, install it yourself like below:\n\n```\ngem install omniauth-marvin\n```\n\nrun `bundle install`\n\n## Usage\n\n**(Skip this if you want to use the gem with Devise to authenticate users)**\n\nRegister your application on 42's intranet to receive an API Key.\n\nHere's an example for adding the middleware to a Rails app in `config/initializers/omniauth.rb`\n\n```ruby\nRails.application.config.middleware.use OmniAuth::Builder do\n  provider :marvin, ENV[\"FT_ID\"], ENV[\"FT_SECRET\"]\nend\n```\n\nYou can now access the OmniAuth 42 OAuth2 URL: `/auth/marvin`\n\nRead the \u003ca href=\"https://github.com/intridea/omniauth/wiki\" target=\"_blank\"\u003eOmniauth Wiki\u003c/a\u003e or see this \u003ca href=\"http://railscasts.com/episodes/241-simple-omniauth\" target=\"_blank\"\u003eRailsCast\u003c/a\u003e for an example on how to use this Rack middleware without any other gem.\n\n## Devise\n\nIf you wish to use this gem with devise, do **NOT** use the code snippet above in the Usage section. Instead, follow these steps:\n\nAdd the devise gem to your Gemfile.\n\n```ruby\ngem 'devise'\n```\n\nrun `bundle install`\n\n#### Generate migrations and models\n\n```\nrails g devise:install\nrails g devise user\nrails g devise:controllers users -c=omniauth_callbacks\nrails g migration AddLoginToUsers login:string\nrails g migration AddOmniauthToUsers provider:index uid:index\n```\n\nBefore migrating, for this example since we are not going to use trackable, and all the devise module. Then please edit the file created into `db/*_devise_create_users`, to only keep:\n\n```\n# frozen_string_literal: true\n\nclass DeviseCreateUsers \u003c ActiveRecord::Migration[6.1]\n  def change\n    create_table :users do |t|\n      t.string :email,              null: false, default: \"\"\n      t.timestamps null: false\n    end\n    add_index :users, :email,                unique: true\n  end\nend\n```\n\nnow you can migrate:\n\n```\nrails db:migrate\n```\n\nYou can add any additional migration you want. For instance, phone, level, wallet...etc.\n\n#### Declare the provider\n\n`config/initializers/devise.rb`\n\n```ruby\nDevise.setup do |config|\n  .\n  .\n  config.omniauth :marvin, ENV[\"FT_ID\"], ENV[\"FT_SECRET\"]\n  .\n  .\nend\n```\n\nDon't forget to set the \"FT_ID\" and \"FT_SECRET\" (your app id and secret) in your environment variables.\n\n#### Make your model omniauthable\n\nIn this case, `app/models/user.rb`\n\n```ruby\nclass User \u003c ActiveRecord::Base\n  devise :omniauthable, omniauth_providers: [:marvin]\nend\n```\n\n#### Add the from_omniauth class method to the user model\n\n`app/models/user.rb`\n\nExample:\n\n```ruby\n  def self.from_omniauth(auth)\n    where(provider: auth.provider, uid: auth.uid).first_or_create do |user|\n      user.email = auth.info.email\n      user.login = auth.info.login\n    end\n  end\n```\n\n#### Implement a callback in the routes\n\n`config/routes.rb`\n\n```ruby\n  devise_for :users, controllers: { omniauth_callbacks: \"users/omniauth_callbacks\" }\n```\n\n#### Edit the callbacks controller\n\n`app/controllers/users/omniauth_callbacks_controller.rb`\n\nExample:\n\n```ruby\n# frozen_string_literal: true\n\nclass Users::OmniauthCallbacksController \u003c Devise::OmniauthCallbacksController\n  def marvin\n    @user = User.from_omniauth(request.env[\"omniauth.auth\"])\n\n    if @user.persisted?\n      sign_in_and_redirect @user, event: :authentication\n      set_flash_message(:notice, :success, kind: \"42\") if is_navigational_format?\n    else\n      session[\"devise.marvin_data\"] = request.env[\"omniauth.auth\"]\n      redirect_to new_user_registration_url\n    end\n  end\n\n  def after_omniauth_failure_path_for scope\n    # instead of root_path you can add sign_in_path if you end up to have your own sign_in page.\n    root_path\n  end\nend\n\n```\n\n#### Add the Sign Out route\n\n`config/routes.rb`\n\n```ruby\n  devise_scope :user do\n    delete 'sign_out', to: 'devise/sessions#destroy', as: :destroy_user_session\n  end\n```\n\n#### Login/logout links\n\nHere's a (very) basic example for login/logout links in the views\n\n```erb\n\u003c%= link_to \"Sign in with 42\", user_marvin_omniauth_authorize_path unless current_user %\u003e\n\u003c%= link_to \"Sign out\", destroy_user_session_path, method: :delete if current_user %\u003e\n```\n\n**Warning: Rails \u003e7**\n\nYou now need to pass the method through `data` like so:\n\n```erb\n\u003c%= link_to \"Sign out\", destroy_user_session_path, data: { turbo_method: :delete } if current_user %\u003e\n```\n\n#### More info\n\nThis section about devise and Omniauth was written with the help of devise documentation.\nMore info about devise and Omniauth on [their documentation](https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview \"their documentation\").\n\n## Auth hash\n\nHere's an example of the auth hash available in request.env['omniauth.auth']:\n\n```json\n{\n  \"provider\": \"marvin\",\n  \"uid\": 19265,\n  \"info\": {\n    \"first_name\": \"Jordane\",\n    \"last_name\": \"Gengo\",\n    \"name\": \"Jordane Angelo Gengo\",\n    \"email\": \"jgengo@student.42.fr\",\n    \"login\": \"jgengo\",\n    \"image\": \"https://cdn.intra.42.fr/users/jgengo.jpg\",\n    \"urls\": {\n      \"profile\": \"https://api.intra.42.fr/v2/users/jgengo\"\n    }\n  },\n  \"credentials\": {\n    \"token\": \"\",\n    \"refresh_token\": \"\",\n    \"expires_at\": 1618602578,\n    \"expires\": true\n  },\n  \"extra\": {\n    \"raw_info\": {\n      \"id\": 19265,\n      \"email\": \"jgengo@student.42.fr\",\n      \"login\": \"jgengo\",\n      \"first_name\": \"Jordane\",\n      \"last_name\": \"Gengo\",\n      \"usual_first_name\": \"Jordane angelo\",\n      \"url\": \"https://api.intra.42.fr/v2/users/jgengo\",\n      \"phone\": \"hidden\",\n      \"displayname\": \"Jordane Gengo\",\n      \"usual_full_name\": \"Jordane Angelo Gengo\",\n      \"image_url\": \"https://cdn.intra.42.fr/users/jgengo.jpg\",\n      \"staff?\": false,\n      \"correction_point\": 28,\n      \"pool_month\": \"july\",\n      \"pool_year\": \"2016\",\n      \"location\": null,\n      \"wallet\": 125,\n      \"anonymize_date\": \"2022-04-16T00:00:00.000+02:00\",\n      \"groups\": [],\n      \"cursus_users\": [\n        {\n          \"grade\": \"Admiral\",\n          \"level\": 21.0,\n          \"skills\": [\n            {\n              \"id\": 16,\n              \"name\": \"Company experience\",\n              \"level\": 21.24\n            },\n            {\n              \"id\": 7,\n              \"name\": \"Group \\u0026 interpersonal\",\n              \"level\": 17.39\n            },\n            {\n              \"id\": 6,\n              \"name\": \"Web\",\n              \"level\": 13.36\n            },\n            {\n              \"id\": 10,\n              \"name\": \"Network \\u0026 system administration\",\n              \"level\": 11.66\n            },\n            {\n              \"id\": 14,\n              \"name\": \"Adaptation \\u0026 creativity\",\n              \"level\": 11.54\n            },\n            {\n              \"id\": 12,\n              \"name\": \"DB \\u0026 Data\",\n              \"level\": 8.39\n            },\n            {\n              \"id\": 1,\n              \"name\": \"Algorithms \\u0026 AI\",\n              \"level\": 5.9\n            },\n            {\n              \"id\": 2,\n              \"name\": \"Imperative programming\",\n              \"level\": 4.5600000000000005\n            },\n            {\n              \"id\": 4,\n              \"name\": \"Unix\",\n              \"level\": 4.53\n            },\n            {\n              \"id\": 11,\n              \"name\": \"Security\",\n              \"level\": 4.26\n            },\n            {\n              \"id\": 3,\n              \"name\": \"Rigor\",\n              \"level\": 3.2\n            },\n            {\n              \"id\": 15,\n              \"name\": \"Technology integration\",\n              \"level\": 2.73\n            },\n            {\n              \"id\": 17,\n              \"name\": \"Object-oriented programming\",\n              \"level\": 1.71\n            },\n            {\n              \"id\": 5,\n              \"name\": \"Graphics\",\n              \"level\": 1.28\n            }\n          ],\n          \"blackholed_at\": null,\n          \"id\": 16191,\n          \"begin_at\": \"2016-11-02T08:00:00.000Z\",\n          \"end_at\": \"2019-12-01T00:00:00.000Z\",\n          \"cursus_id\": 1,\n          \"has_coalition\": true,\n          \"user\": {\n            \"id\": 19265,\n            \"login\": \"jgengo\",\n            \"url\": \"https://api.intra.42.fr/v2/users/jgengo\"\n          },\n          \"cursus\": {\n            \"id\": 1,\n            \"created_at\": \"2014-11-02T16:43:38.480Z\",\n            \"name\": \"42\",\n            \"slug\": \"42\"\n          }\n        },\n        {\n          \"grade\": null,\n          \"level\": 4.0,\n          \"skills\": [\n            {\n              \"id\": 4,\n              \"name\": \"Unix\",\n              \"level\": 4.13\n            },\n            {\n              \"id\": 3,\n              \"name\": \"Rigor\",\n              \"level\": 3.73\n            },\n            {\n              \"id\": 1,\n              \"name\": \"Algorithms \\u0026 AI\",\n              \"level\": 3.66\n            },\n            {\n              \"id\": 7,\n              \"name\": \"Group \\u0026 interpersonal\",\n              \"level\": 0.69\n            }\n          ],\n          \"blackholed_at\": null,\n          \"id\": 10033,\n          \"begin_at\": \"2016-06-30T21:42:00.000Z\",\n          \"end_at\": \"2016-07-31T21:42:00.000Z\",\n          \"cursus_id\": 4,\n          \"has_coalition\": true,\n          \"user\": {\n            \"id\": 19265,\n            \"login\": \"jgengo\",\n            \"url\": \"https://api.intra.42.fr/v2/users/jgengo\"\n          },\n          \"cursus\": {\n            \"id\": 4,\n            \"created_at\": \"2015-05-01T17:46:08.433Z\",\n            \"name\": \"Piscine C\",\n            \"slug\": \"piscine-c\"\n          }\n        },\n        {\n          \"grade\": \"Member\",\n          \"level\": 21.01,\n          \"skills\": [\n            {\n              \"id\": 16,\n              \"name\": \"Company experience\",\n              \"level\": 21.25\n            },\n            {\n              \"id\": 7,\n              \"name\": \"Group \\u0026 interpersonal\",\n              \"level\": 17.39\n            },\n            {\n              \"id\": 6,\n              \"name\": \"Web\",\n              \"level\": 13.36\n            },\n            {\n              \"id\": 10,\n              \"name\": \"Network \\u0026 system administration\",\n              \"level\": 11.66\n            },\n            {\n              \"id\": 14,\n              \"name\": \"Adaptation \\u0026 creativity\",\n              \"level\": 11.54\n            },\n            {\n              \"id\": 12,\n              \"name\": \"DB \\u0026 Data\",\n              \"level\": 8.39\n            },\n            {\n              \"id\": 1,\n              \"name\": \"Algorithms \\u0026 AI\",\n              \"level\": 5.52\n            },\n            {\n              \"id\": 2,\n              \"name\": \"Imperative programming\",\n              \"level\": 5.03\n            },\n            {\n              \"id\": 4,\n              \"name\": \"Unix\",\n              \"level\": 5.02\n            },\n            {\n              \"id\": 11,\n              \"name\": \"Security\",\n              \"level\": 4.87\n            },\n            {\n              \"id\": 3,\n              \"name\": \"Rigor\",\n              \"level\": 4.29\n            },\n            {\n              \"id\": 15,\n              \"name\": \"Technology integration\",\n              \"level\": 4.06\n            },\n            {\n              \"id\": 17,\n              \"name\": \"Object-oriented programming\",\n              \"level\": 2.92\n            },\n            {\n              \"id\": 5,\n              \"name\": \"Graphics\",\n              \"level\": 2.56\n            }\n          ],\n          \"blackholed_at\": \"2018-05-16T07:00:00.000Z\",\n          \"id\": 83052,\n          \"begin_at\": \"2016-11-02T08:00:00.000Z\",\n          \"end_at\": null,\n          \"cursus_id\": 21,\n          \"has_coalition\": true,\n          \"user\": {\n            \"id\": 19265,\n            \"login\": \"jgengo\",\n            \"url\": \"https://api.intra.42.fr/v2/users/jgengo\"\n          },\n          \"cursus\": {\n            \"id\": 21,\n            \"created_at\": \"2019-07-29T08:45:17.896Z\",\n            \"name\": \"42cursus\",\n            \"slug\": \"42cursus\"\n          }\n        }\n      ],\n      \"projects_users\": [\n        {\n          \"id\": 1024960,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2173586,\n          \"project\": {\n            \"id\": 211,\n            \"name\": \"Peer Video\",\n            \"slug\": \"final-internship-peer-video\",\n            \"parent_id\": 212\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2018-08-28T13:21:42.412Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2018-08-28T13:21:46.156Z\"\n        },\n        {\n          \"id\": 745865,\n          \"occurrence\": 0,\n          \"final_mark\": 125,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1844273,\n          \"project\": {\n            \"id\": 604,\n            \"name\": \"Darkly\",\n            \"slug\": \"darkly\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-11-28T18:03:50.501Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-12-05T18:03:48.389Z\"\n        },\n        {\n          \"id\": 726705,\n          \"occurrence\": 0,\n          \"final_mark\": 125,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1838773,\n          \"project\": {\n            \"id\": 597,\n            \"name\": \"Hypertube\",\n            \"slug\": \"hypertube\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-11-11T13:00:09.534Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-11-18T13:00:06.065Z\"\n        },\n        {\n          \"id\": 689963,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1780157,\n          \"project\": {\n            \"id\": 847,\n            \"name\": \"docker-1\",\n            \"slug\": \"docker-1\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-11-20T21:19:12.735Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-11-23T21:19:10.824Z\"\n        },\n        {\n          \"id\": 689964,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1780158,\n          \"project\": {\n            \"id\": 687,\n            \"name\": \"init\",\n            \"slug\": \"init\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-11-23T10:48:16.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-11-24T10:48:13.584Z\"\n        },\n        {\n          \"id\": 689434,\n          \"occurrence\": 0,\n          \"final_mark\": 125,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1779578,\n          \"project\": {\n            \"id\": 700,\n            \"name\": \"Dr Quine\",\n            \"slug\": \"dr-quine\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-09-25T09:06:43.558Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-10-02T09:06:41.075Z\"\n        },\n        {\n          \"id\": 647141,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1728650,\n          \"project\": {\n            \"id\": 60,\n            \"name\": \"Rush01\",\n            \"slug\": \"piscine-php-rush01\",\n            \"parent_id\": 48\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-10-30T09:46:22.689Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-10-30T09:46:22.674Z\"\n        },\n        {\n          \"id\": 647136,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1728642,\n          \"project\": {\n            \"id\": 54,\n            \"name\": \"Day 05\",\n            \"slug\": \"42-piscine-c-formation-piscine-php-day-05\",\n            \"parent_id\": 48\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-10-30T09:46:15.463Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-10-21T13:56:59.293Z\"\n        },\n        {\n          \"id\": 647131,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1728648,\n          \"project\": {\n            \"id\": 50,\n            \"name\": \"Day 01\",\n            \"slug\": \"42-piscine-c-formation-piscine-php-day-01\",\n            \"parent_id\": 48\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-10-30T09:46:10.441Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-10-30T09:46:10.413Z\"\n        },\n        {\n          \"id\": 647135,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1728649,\n          \"project\": {\n            \"id\": 59,\n            \"name\": \"Rush00\",\n            \"slug\": \"piscine-php-rush00\",\n            \"parent_id\": 48\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-10-30T09:46:15.392Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-10-30T09:46:15.379Z\"\n        },\n        {\n          \"id\": 647139,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1728645,\n          \"project\": {\n            \"id\": 57,\n            \"name\": \"Day 08\",\n            \"slug\": \"42-piscine-c-formation-piscine-php-day-08\",\n            \"parent_id\": 48\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-10-30T09:46:20.024Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-10-30T09:46:19.997Z\"\n        },\n        {\n          \"id\": 647137,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1728643,\n          \"project\": {\n            \"id\": 55,\n            \"name\": \"Day 06\",\n            \"slug\": \"42-piscine-c-formation-piscine-php-day-06\",\n            \"parent_id\": 48\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-10-30T09:46:16.640Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-10-30T09:46:16.615Z\"\n        },\n        {\n          \"id\": 647130,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1728647,\n          \"project\": {\n            \"id\": 49,\n            \"name\": \"Day 00\",\n            \"slug\": \"42-piscine-c-formation-piscine-php-day-00\",\n            \"parent_id\": 48\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-10-30T09:56:23.449Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-10-30T09:56:23.426Z\"\n        },\n        {\n          \"id\": 647140,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1728646,\n          \"project\": {\n            \"id\": 58,\n            \"name\": \"Day 09\",\n            \"slug\": \"42-piscine-c-formation-piscine-php-day-09\",\n            \"parent_id\": 48\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-10-30T09:46:21.440Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-10-30T09:46:21.426Z\"\n        },\n        {\n          \"id\": 647138,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1728644,\n          \"project\": {\n            \"id\": 56,\n            \"name\": \"Day 07\",\n            \"slug\": \"42-piscine-c-formation-piscine-php-day-07\",\n            \"parent_id\": 48\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-10-30T09:46:18.297Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-10-30T09:46:18.272Z\"\n        },\n        {\n          \"id\": 647132,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1728639,\n          \"project\": {\n            \"id\": 51,\n            \"name\": \"Day 02\",\n            \"slug\": \"42-piscine-c-formation-piscine-php-day-02\",\n            \"parent_id\": 48\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-10-30T09:46:11.788Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-10-30T09:46:11.775Z\"\n        },\n        {\n          \"id\": 647133,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1728640,\n          \"project\": {\n            \"id\": 52,\n            \"name\": \"Day 03\",\n            \"slug\": \"42-piscine-c-formation-piscine-php-day-03\",\n            \"parent_id\": 48\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-10-30T09:46:12.574Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-10-30T09:46:12.553Z\"\n        },\n        {\n          \"id\": 647134,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1728641,\n          \"project\": {\n            \"id\": 53,\n            \"name\": \"Day 04\",\n            \"slug\": \"42-piscine-c-formation-piscine-php-day-04\",\n            \"parent_id\": 48\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-10-30T09:46:13.729Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-10-30T09:46:13.707Z\"\n        },\n        {\n          \"id\": 510252,\n          \"occurrence\": 0,\n          \"final_mark\": 118,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1647106,\n          \"project\": {\n            \"id\": 596,\n            \"name\": \"Matcha\",\n            \"slug\": \"matcha\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-10-21T13:54:23.662Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-10-28T13:54:21.000Z\"\n        },\n        {\n          \"id\": 557311,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1619659,\n          \"project\": {\n            \"id\": 121,\n            \"name\": \"Peer Video\",\n            \"slug\": \"first-internship-peer-video\",\n            \"parent_id\": 118\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2018-01-10T11:55:46.173Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2018-01-10T11:55:43.877Z\"\n        },\n        {\n          \"id\": 557310,\n          \"occurrence\": 0,\n          \"final_mark\": 111,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1619658,\n          \"project\": {\n            \"id\": 120,\n            \"name\": \"Company final evaluation\",\n            \"slug\": \"first-internship-company-final-evaluation\",\n            \"parent_id\": 118\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2018-04-17T08:39:55.911Z\",\n          \"marked\": true,\n          \"retriable_at\": null\n        },\n        {\n          \"id\": 557309,\n          \"occurrence\": 0,\n          \"final_mark\": 103,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1619657,\n          \"project\": {\n            \"id\": 826,\n            \"name\": \"Company mid evaluation\",\n            \"slug\": \"first-internship-company-mid-evaluation\",\n            \"parent_id\": 118\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-10-30T17:30:25.545Z\",\n          \"marked\": true,\n          \"retriable_at\": null\n        },\n        {\n          \"id\": 557308,\n          \"occurrence\": 0,\n          \"final_mark\": 125,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1619656,\n          \"project\": {\n            \"id\": 140,\n            \"name\": \"Duration\",\n            \"slug\": \"first-internship-duration\",\n            \"parent_id\": 118\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-07-13T15:24:05.314Z\",\n          \"marked\": true,\n          \"retriable_at\": null\n        },\n        {\n          \"id\": 557307,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1619655,\n          \"project\": {\n            \"id\": 119,\n            \"name\": \"Contract Upload\",\n            \"slug\": \"first-internship-contract-upload\",\n            \"parent_id\": 118\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-07-13T15:24:06.188Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-07-13T15:22:35.355Z\"\n        },\n        {\n          \"id\": 490349,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1539043,\n          \"project\": {\n            \"id\": 537,\n            \"name\": \"Camagru\",\n            \"slug\": \"camagru\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-06-26T21:53:01.617Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-06-30T21:53:01.595Z\"\n        },\n        {\n          \"id\": 445223,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1483034,\n          \"project\": {\n            \"id\": 803,\n            \"name\": \"Rush01\",\n            \"slug\": \"piscine-ruby-on-rails-rush01\",\n            \"parent_id\": 791\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2018-04-24T12:17:53.476Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2018-04-24T12:17:53.464Z\"\n        },\n        {\n          \"id\": 445417,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1482625,\n          \"project\": {\n            \"id\": 802,\n            \"name\": \"Day 09\",\n            \"slug\": \"piscine-ruby-on-rails-day-09\",\n            \"parent_id\": 791\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2016-12-19T08:51:36.563Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-12-19T08:51:36.542Z\"\n        },\n        {\n          \"id\": 445398,\n          \"occurrence\": 0,\n          \"final_mark\": 60,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1482605,\n          \"project\": {\n            \"id\": 801,\n            \"name\": \"Day 08\",\n            \"slug\": \"piscine-ruby-on-rails-day-08\",\n            \"parent_id\": 791\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2016-12-18T10:28:33.716Z\",\n          \"marked\": true,\n          \"retriable_at\": null\n        },\n        {\n          \"id\": 445249,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1482406,\n          \"project\": {\n            \"id\": 800,\n            \"name\": \"Day 07\",\n            \"slug\": \"piscine-ruby-on-rails-day-07\",\n            \"parent_id\": 791\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2016-12-19T08:51:44.969Z\",\n          \"marked\": true,\n          \"retriable_at\": null\n        },\n        {\n          \"id\": 444700,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1481444,\n          \"project\": {\n            \"id\": 799,\n            \"name\": \"Day 06\",\n            \"slug\": \"piscine-ruby-on-rails-day-06\",\n            \"parent_id\": 791\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-09-02T13:22:49.622Z\",\n          \"marked\": true,\n          \"retriable_at\": null\n        },\n        {\n          \"id\": 444265,\n          \"occurrence\": 0,\n          \"final_mark\": 67,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1481293,\n          \"project\": {\n            \"id\": 797,\n            \"name\": \"Rush00\",\n            \"slug\": \"piscine-ruby-on-rails-rush00\",\n            \"parent_id\": 791\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2016-12-12T11:14:22.358Z\",\n          \"marked\": true,\n          \"retriable_at\": null\n        },\n        {\n          \"id\": 444563,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1481155,\n          \"project\": {\n            \"id\": 798,\n            \"name\": \"Day 05\",\n            \"slug\": \"piscine-ruby-on-rails-day-05\",\n            \"parent_id\": 791\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-01-23T15:45:59.963Z\",\n          \"marked\": true,\n          \"retriable_at\": null\n        },\n        {\n          \"id\": 444246,\n          \"occurrence\": 0,\n          \"final_mark\": 57,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1480669,\n          \"project\": {\n            \"id\": 795,\n            \"name\": \"Day 03\",\n            \"slug\": \"piscine-ruby-on-rails-day-03\",\n            \"parent_id\": 791\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-09-02T13:21:15.772Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-12-10T08:32:11.097Z\"\n        },\n        {\n          \"id\": 444017,\n          \"occurrence\": 0,\n          \"final_mark\": 52,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1480110,\n          \"project\": {\n            \"id\": 796,\n            \"name\": \"Day 04\",\n            \"slug\": \"piscine-ruby-on-rails-day-04\",\n            \"parent_id\": 791\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-09-02T13:21:45.061Z\",\n          \"marked\": true,\n          \"retriable_at\": null\n        },\n        {\n          \"id\": 443840,\n          \"occurrence\": 0,\n          \"final_mark\": 79,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1479803,\n          \"project\": {\n            \"id\": 793,\n            \"name\": \"Day 01\",\n            \"slug\": \"piscine-ruby-on-rails-day-01\",\n            \"parent_id\": 791\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-04-14T12:09:05.529Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-12-08T09:31:57.882Z\"\n        },\n        {\n          \"id\": 443734,\n          \"occurrence\": 0,\n          \"final_mark\": 54,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1479633,\n          \"project\": {\n            \"id\": 794,\n            \"name\": \"Day 02\",\n            \"slug\": \"piscine-ruby-on-rails-day-02\",\n            \"parent_id\": 791\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-09-02T13:20:48.671Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-12-09T08:31:34.860Z\"\n        },\n        {\n          \"id\": 443507,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1479238,\n          \"project\": {\n            \"id\": 792,\n            \"name\": \"Day 00\",\n            \"slug\": \"piscine-ruby-on-rails-day-00\",\n            \"parent_id\": 791\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-09-02T13:20:20.725Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-12-07T11:54:49.168Z\"\n        },\n        {\n          \"id\": 441655,\n          \"occurrence\": 0,\n          \"final_mark\": 125,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1476768,\n          \"project\": {\n            \"id\": 4,\n            \"name\": \"FdF\",\n            \"slug\": \"fdf\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-01-19T13:14:05.528Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-01-23T13:14:03.928Z\"\n        },\n        {\n          \"id\": 441081,\n          \"occurrence\": 0,\n          \"final_mark\": 120,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1475754,\n          \"project\": {\n            \"id\": 2,\n            \"name\": \"GET_Next_Line\",\n            \"slug\": \"get_next_line\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2016-11-23T13:53:08.519Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-11-24T13:53:08.498Z\"\n        },\n        {\n          \"id\": 438787,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1472240,\n          \"project\": {\n            \"id\": 540,\n            \"name\": \"Fillit\",\n            \"slug\": \"fillit\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2016-11-21T10:15:08.258Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-11-23T10:15:08.142Z\"\n        },\n        {\n          \"id\": 433800,\n          \"occurrence\": 0,\n          \"final_mark\": 125,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1465152,\n          \"project\": {\n            \"id\": 1,\n            \"name\": \"Libft\",\n            \"slug\": \"libft\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-11-11T12:20:50.167Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-11-12T12:20:50.145Z\"\n        },\n        {\n          \"id\": 428286,\n          \"occurrence\": 7,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1465141,\n          \"project\": {\n            \"id\": 756,\n            \"name\": \"Piscine Reloaded\",\n            \"slug\": \"piscine-reloaded\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2016-11-04T11:05:10.867Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-11-04T11:05:10.842Z\"\n        },\n        {\n          \"id\": 428058,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1458252,\n          \"project\": {\n            \"id\": 817,\n            \"name\": \"42 Commandements\",\n            \"slug\": \"42-formation-pole-emploi-42-commandements\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2016-11-02T09:34:42.896Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-11-02T09:34:42.868Z\"\n        },\n        {\n          \"id\": 305685,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1331518,\n          \"project\": {\n            \"id\": 170,\n            \"name\": \"Rush 02\",\n            \"slug\": \"piscine-c-rush-02\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-08-08T22:12:05.820Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-28T13:03:50.789Z\"\n        },\n        {\n          \"id\": 305684,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1327458,\n          \"project\": {\n            \"id\": 173,\n            \"name\": \"EvalExpr\",\n            \"slug\": \"piscine-c-evalexpr\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-07-25T21:51:31.751Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-25T21:51:31.721Z\"\n        },\n        {\n          \"id\": 302832,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1325029,\n          \"project\": {\n            \"id\": 174,\n            \"name\": \"BSQ\",\n            \"slug\": \"bsq\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-08-26T08:52:14.651Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-28T11:30:57.306Z\"\n        },\n        {\n          \"id\": 302233,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1324427,\n          \"project\": {\n            \"id\": 166,\n            \"name\": \"Day 13\",\n            \"slug\": \"piscine-c-day-13\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-07-23T22:08:20.470Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-23T22:08:20.448Z\"\n        },\n        {\n          \"id\": 301506,\n          \"occurrence\": 0,\n          \"final_mark\": 25,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1323691,\n          \"project\": {\n            \"id\": 165,\n            \"name\": \"Day 12\",\n            \"slug\": \"piscine-c-day-12\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-07-23T17:53:08.135Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-22T12:13:34.491Z\"\n        },\n        {\n          \"id\": 300265,\n          \"occurrence\": 0,\n          \"final_mark\": 5,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1322428,\n          \"project\": {\n            \"id\": 164,\n            \"name\": \"Day 11\",\n            \"slug\": \"piscine-c-day-11\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-07-23T18:02:57.536Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-21T09:06:03.906Z\"\n        },\n        {\n          \"id\": 300264,\n          \"occurrence\": 0,\n          \"final_mark\": 25,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1322427,\n          \"project\": {\n            \"id\": 163,\n            \"name\": \"Day 10\",\n            \"slug\": \"piscine-c-day-10\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-07-19T12:14:42.803Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-20T07:33:55.004Z\"\n        },\n        {\n          \"id\": 280586,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1321552,\n          \"project\": {\n            \"id\": 169,\n            \"name\": \"Rush 01\",\n            \"slug\": \"piscine-c-rush-01\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-08-08T22:11:01.108Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-19T11:28:14.003Z\"\n        },\n        {\n          \"id\": 280348,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1302466,\n          \"project\": {\n            \"id\": 172,\n            \"name\": \"Match-N-Match\",\n            \"slug\": \"piscine-c-match-n-match\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-08-14T07:41:32.464Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-20T16:21:09.214Z\"\n        },\n        {\n          \"id\": 270808,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1292967,\n          \"project\": {\n            \"id\": 162,\n            \"name\": \"Day 08\",\n            \"slug\": \"piscine-c-day-08\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-07-17T08:58:20.205Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-17T08:58:20.183Z\"\n        },\n        {\n          \"id\": 269669,\n          \"occurrence\": 0,\n          \"final_mark\": 16,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1291599,\n          \"project\": {\n            \"id\": 161,\n            \"name\": \"Day 07\",\n            \"slug\": \"piscine-c-day-07\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-07-15T21:45:38.366Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-15T21:45:38.355Z\"\n        },\n        {\n          \"id\": 269341,\n          \"occurrence\": 0,\n          \"final_mark\": 70,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1291266,\n          \"project\": {\n            \"id\": 160,\n            \"name\": \"Day 06\",\n            \"slug\": \"piscine-c-day-06\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-07-14T10:30:47.314Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-14T10:30:47.290Z\"\n        },\n        {\n          \"id\": 267718,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1290709,\n          \"project\": {\n            \"id\": 168,\n            \"name\": \"Rush 00\",\n            \"slug\": \"piscine-c-rush-00\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-16T11:52:20.454Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-13T14:39:17.628Z\"\n        },\n        {\n          \"id\": 268069,\n          \"occurrence\": 0,\n          \"final_mark\": 20,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1289816,\n          \"project\": {\n            \"id\": 159,\n            \"name\": \"Day 05\",\n            \"slug\": \"piscine-c-day-05\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-07-23T03:10:40.577Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-13T12:15:30.702Z\"\n        },\n        {\n          \"id\": 267717,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1289561,\n          \"project\": {\n            \"id\": 171,\n            \"name\": \"Sastantua\",\n            \"slug\": \"piscine-c-sastantua\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-08T14:55:07.132Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-15T20:15:17.665Z\"\n        },\n        {\n          \"id\": 264171,\n          \"occurrence\": 0,\n          \"final_mark\": 20,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1286582,\n          \"project\": {\n            \"id\": 158,\n            \"name\": \"Day 04\",\n            \"slug\": \"piscine-c-day-04\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-08-06T10:07:36.923Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-10T16:20:58.775Z\"\n        },\n        {\n          \"id\": 262516,\n          \"occurrence\": 0,\n          \"final_mark\": 65,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1284884,\n          \"project\": {\n            \"id\": 157,\n            \"name\": \"Day 03\",\n            \"slug\": \"piscine-c-day-03\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-08T17:01:47.326Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-10T16:01:36.514Z\"\n        },\n        {\n          \"id\": 262515,\n          \"occurrence\": 0,\n          \"final_mark\": 43,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1284883,\n          \"project\": {\n            \"id\": 156,\n            \"name\": \"Day 02\",\n            \"slug\": \"piscine-c-day-02\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-07-23T02:18:25.281Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-08T12:05:48.874Z\"\n        },\n        {\n          \"id\": 262513,\n          \"occurrence\": 0,\n          \"final_mark\": 85,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1284881,\n          \"project\": {\n            \"id\": 155,\n            \"name\": \"Day 01\",\n            \"slug\": \"piscine-c-day-01\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-07-23T02:01:40.041Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-07T15:16:58.180Z\"\n        },\n        {\n          \"id\": 260667,\n          \"occurrence\": 0,\n          \"final_mark\": 50,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1283022,\n          \"project\": {\n            \"id\": 154,\n            \"name\": \"Day 00\",\n            \"slug\": \"piscine-c-day-00\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-07-23T01:43:53.891Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-06T15:43:45.128Z\"\n        },\n        {\n          \"id\": 285242,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1307201,\n          \"project\": {\n            \"id\": 203,\n            \"name\": \"19\",\n            \"slug\": \"piscine-c-day-09-19\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:54.763Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:54.731Z\"\n        },\n        {\n          \"id\": 285237,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1307196,\n          \"project\": {\n            \"id\": 202,\n            \"name\": \"18\",\n            \"slug\": \"piscine-c-day-09-18\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:56.112Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:56.082Z\"\n        },\n        {\n          \"id\": 303695,\n          \"occurrence\": 0,\n          \"final_mark\": 94,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1325689,\n          \"project\": {\n            \"id\": 406,\n            \"name\": \"Exam02\",\n            \"slug\": \"piscine-c-exam02\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-07-19T17:56:18.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-06-26T21:47:08.881Z\"\n        },\n        {\n          \"id\": 311027,\n          \"occurrence\": 0,\n          \"final_mark\": 75,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1332698,\n          \"project\": {\n            \"id\": 407,\n            \"name\": \"Exam Final\",\n            \"slug\": \"piscine-c-exam-final\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-07-26T08:05:04.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-06-26T21:48:14.023Z\"\n        },\n        {\n          \"id\": 440462,\n          \"occurrence\": 5,\n          \"final_mark\": 79,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1483734,\n          \"project\": {\n            \"id\": 11,\n            \"name\": \"C Exam Alone In The Dark - Beginner\",\n            \"slug\": \"c-exam-alone-in-the-dark-beginner\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2016-12-27T10:16:57.072Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-12-27T10:16:31.371Z\"\n        },\n        {\n          \"id\": 443482,\n          \"occurrence\": 0,\n          \"final_mark\": 69,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1479204,\n          \"project\": {\n            \"id\": 791,\n            \"name\": \"Piscine Ruby on Rails\",\n            \"slug\": \"piscine-ruby-on-rails\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2018-04-24T12:17:53.367Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2018-04-24T12:17:53.320Z\"\n        },\n        {\n          \"id\": 647129,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1728636,\n          \"project\": {\n            \"id\": 48,\n            \"name\": \"Piscine PHP\",\n            \"slug\": \"piscine-php\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2017-10-30T09:57:31.242Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-10-30T09:57:31.209Z\"\n        },\n        {\n          \"id\": 534508,\n          \"occurrence\": 0,\n          \"final_mark\": 123,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1593193,\n          \"project\": {\n            \"id\": 118,\n            \"name\": \"First Internship\",\n            \"slug\": \"first-internship\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2018-04-17T08:39:55.877Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2018-04-17T08:39:55.837Z\"\n        },\n        {\n          \"id\": 825428,\n          \"occurrence\": 0,\n          \"final_mark\": 125,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1940692,\n          \"project\": {\n            \"id\": 209,\n            \"name\": \"Duration\",\n            \"slug\": \"final-internship-duration\",\n            \"parent_id\": 212\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2018-03-23T14:10:08.490Z\",\n          \"marked\": true,\n          \"retriable_at\": null\n        },\n        {\n          \"id\": 825427,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1940691,\n          \"project\": {\n            \"id\": 208,\n            \"name\": \"Contract Upload\",\n            \"slug\": \"final-internship-contract-upload\",\n            \"parent_id\": 212\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2018-03-23T14:10:08.050Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2018-03-23T14:10:08.026Z\"\n        },\n        {\n          \"id\": 825429,\n          \"occurrence\": 0,\n          \"final_mark\": 118,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1940693,\n          \"project\": {\n            \"id\": 827,\n            \"name\": \"Company mid evaluation\",\n            \"slug\": \"final-internship-company-mid-evaluation\",\n            \"parent_id\": 212\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2018-05-28T11:53:57.910Z\",\n          \"marked\": true,\n          \"retriable_at\": null\n        },\n        {\n          \"id\": 791493,\n          \"occurrence\": 0,\n          \"final_mark\": 125,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1899477,\n          \"project\": {\n            \"id\": 212,\n            \"name\": \"Final Internship\",\n            \"slug\": \"final-internship\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2018-08-28T13:21:43.234Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2018-08-28T13:21:46.074Z\"\n        },\n        {\n          \"id\": 825430,\n          \"occurrence\": 0,\n          \"final_mark\": 118,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1940694,\n          \"project\": {\n            \"id\": 210,\n            \"name\": \"Company final evaluation\",\n            \"slug\": \"final-internship-company-final-evaluation\",\n            \"parent_id\": 212\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2018-08-24T11:33:09.862Z\",\n          \"marked\": true,\n          \"retriable_at\": null\n        },\n        {\n          \"id\": 265317,\n          \"occurrence\": 0,\n          \"final_mark\": 65,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1287775,\n          \"project\": {\n            \"id\": 404,\n            \"name\": \"Exam00\",\n            \"slug\": \"piscine-c-exam00\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-07-08T16:49:32.159Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-08T16:45:08.743Z\"\n        },\n        {\n          \"id\": 274412,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296663,\n          \"project\": {\n            \"id\": 192,\n            \"name\": \"08\",\n            \"slug\": \"piscine-c-day-09-08\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:58.680Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:58.641Z\"\n        },\n        {\n          \"id\": 274454,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296705,\n          \"project\": {\n            \"id\": 197,\n            \"name\": \"13\",\n            \"slug\": \"piscine-c-day-09-13\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:57.205Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:57.165Z\"\n        },\n        {\n          \"id\": 274444,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296695,\n          \"project\": {\n            \"id\": 195,\n            \"name\": \"11\",\n            \"slug\": \"piscine-c-day-09-11\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:57.881Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:57.850Z\"\n        },\n        {\n          \"id\": 274392,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296643,\n          \"project\": {\n            \"id\": 186,\n            \"name\": \"02\",\n            \"slug\": \"piscine-c-day-09-02\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:53:00.383Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:53:00.352Z\"\n        },\n        {\n          \"id\": 274413,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296664,\n          \"project\": {\n            \"id\": 193,\n            \"name\": \"09\",\n            \"slug\": \"piscine-c-day-09-09\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:58.485Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:58.440Z\"\n        },\n        {\n          \"id\": 274386,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296637,\n          \"project\": {\n            \"id\": 175,\n            \"name\": \"00\",\n            \"slug\": \"piscine-c-day-09-00\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:53:00.782Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:53:00.761Z\"\n        },\n        {\n          \"id\": 274462,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296713,\n          \"project\": {\n            \"id\": 198,\n            \"name\": \"14\",\n            \"slug\": \"piscine-c-day-09-14\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:56.948Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:56.905Z\"\n        },\n        {\n          \"id\": 274389,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296640,\n          \"project\": {\n            \"id\": 185,\n            \"name\": \"01\",\n            \"slug\": \"piscine-c-day-09-01\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:53:00.588Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:53:00.552Z\"\n        },\n        {\n          \"id\": 274394,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296645,\n          \"project\": {\n            \"id\": 187,\n            \"name\": \"03\",\n            \"slug\": \"piscine-c-day-09-03\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:53:00.167Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:53:00.126Z\"\n        },\n        {\n          \"id\": 274450,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296701,\n          \"project\": {\n            \"id\": 196,\n            \"name\": \"12\",\n            \"slug\": \"piscine-c-day-09-12\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:57.553Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:57.514Z\"\n        },\n        {\n          \"id\": 274467,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296718,\n          \"project\": {\n            \"id\": 199,\n            \"name\": \"15\",\n            \"slug\": \"piscine-c-day-09-15\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:56.634Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:56.585Z\"\n        },\n        {\n          \"id\": 274400,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296651,\n          \"project\": {\n            \"id\": 189,\n            \"name\": \"05\",\n            \"slug\": \"piscine-c-day-09-05\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:59.604Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:59.556Z\"\n        },\n        {\n          \"id\": 274407,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296658,\n          \"project\": {\n            \"id\": 190,\n            \"name\": \"06\",\n            \"slug\": \"piscine-c-day-09-06\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:59.346Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:59.315Z\"\n        },\n        {\n          \"id\": 274396,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296647,\n          \"project\": {\n            \"id\": 188,\n            \"name\": \"04\",\n            \"slug\": \"piscine-c-day-09-04\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:59.838Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:59.801Z\"\n        },\n        {\n          \"id\": 274492,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296743,\n          \"project\": {\n            \"id\": 200,\n            \"name\": \"16\",\n            \"slug\": \"piscine-c-day-09-16\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:56.375Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:56.351Z\"\n        },\n        {\n          \"id\": 274438,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296689,\n          \"project\": {\n            \"id\": 194,\n            \"name\": \"10\",\n            \"slug\": \"piscine-c-day-09-10\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:58.231Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:58.204Z\"\n        },\n        {\n          \"id\": 274409,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1296660,\n          \"project\": {\n            \"id\": 191,\n            \"name\": \"07\",\n            \"slug\": \"piscine-c-day-09-07\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:58.995Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:58.961Z\"\n        },\n        {\n          \"id\": 280347,\n          \"occurrence\": 0,\n          \"final_mark\": 88,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1302465,\n          \"project\": {\n            \"id\": 405,\n            \"name\": \"Exam01\",\n            \"slug\": \"piscine-c-exam01\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-07-13T06:27:42.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-06-26T21:47:33.246Z\"\n        },\n        {\n          \"id\": 285243,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1307202,\n          \"project\": {\n            \"id\": 201,\n            \"name\": \"17\",\n            \"slug\": \"piscine-c-day-09-17\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:54.464Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:54.425Z\"\n        },\n        {\n          \"id\": 285238,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1307197,\n          \"project\": {\n            \"id\": 204,\n            \"name\": \"20\",\n            \"slug\": \"piscine-c-day-09-20\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:55.852Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:55.827Z\"\n        },\n        {\n          \"id\": 285239,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1307198,\n          \"project\": {\n            \"id\": 207,\n            \"name\": \"23\",\n            \"slug\": \"piscine-c-day-09-23\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:55.665Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:55.617Z\"\n        },\n        {\n          \"id\": 272717,\n          \"occurrence\": 0,\n          \"final_mark\": 12,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 1294940,\n          \"project\": {\n            \"id\": 167,\n            \"name\": \"Day 09\",\n            \"slug\": \"piscine-c-day-09\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2016-07-16T16:11:17.915Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-07-16T16:11:17.892Z\"\n        },\n        {\n          \"id\": 285241,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1307200,\n          \"project\": {\n            \"id\": 205,\n            \"name\": \"21\",\n            \"slug\": \"piscine-c-day-09-21\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:55.020Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:54.999Z\"\n        },\n        {\n          \"id\": 285240,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1307199,\n          \"project\": {\n            \"id\": 206,\n            \"name\": \"22\",\n            \"slug\": \"piscine-c-day-09-22\",\n            \"parent_id\": 167\n          },\n          \"cursus_ids\": [4],\n          \"marked_at\": \"2017-09-01T17:52:55.260Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2017-09-01T17:52:55.221Z\"\n        },\n        {\n          \"id\": 1681541,\n          \"occurrence\": 0,\n          \"final_mark\": 69,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954768,\n          \"project\": {\n            \"id\": 1482,\n            \"name\": \"Piscine Ruby on Rails\",\n            \"slug\": \"42cursus-piscine-ruby-on-rails\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2018-04-24T12:17:53.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681528,\n          \"occurrence\": 0,\n          \"final_mark\": 125,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954755,\n          \"project\": {\n            \"id\": 1402,\n            \"name\": \"hypertube\",\n            \"slug\": \"42cursus-hypertube\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2017-11-11T13:00:09.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681540,\n          \"occurrence\": 0,\n          \"final_mark\": 125,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954766,\n          \"project\": {\n            \"id\": 1418,\n            \"name\": \"dr-quine\",\n            \"slug\": \"42cursus-dr-quine\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2017-09-25T09:06:43.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681553,\n          \"occurrence\": 0,\n          \"final_mark\": 125,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954780,\n          \"project\": {\n            \"id\": 1646,\n            \"name\": \"Internship II - Duration\",\n            \"slug\": \"internship-ii-internship-ii-duration\",\n            \"parent_id\": 1644\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2018-03-23T14:10:08.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681570,\n          \"occurrence\": 0,\n          \"final_mark\": 103,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954797,\n          \"project\": {\n            \"id\": 1641,\n            \"name\": \"internship I - Company Mid Evaluation\",\n            \"slug\": \"internship-i-internship-i-company-mid-evaluation\",\n            \"parent_id\": 1638\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2017-10-30T17:30:25.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681571,\n          \"occurrence\": 0,\n          \"final_mark\": 118,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954798,\n          \"project\": {\n            \"id\": 1647,\n            \"name\": \"Internship II - Company Mid Evaluation\",\n            \"slug\": \"internship-ii-internship-ii-company-mid-evaluation\",\n            \"parent_id\": 1644\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2018-05-28T11:53:57.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681555,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954782,\n          \"project\": {\n            \"id\": 1608,\n            \"name\": \"Day 00\",\n            \"slug\": \"42cursus-piscine-ruby-on-rails-day-00\",\n            \"parent_id\": 1482\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2017-09-02T13:20:20.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681535,\n          \"occurrence\": 0,\n          \"final_mark\": 123,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954762,\n          \"project\": {\n            \"id\": 1638,\n            \"name\": \"Internship I\",\n            \"slug\": \"internship-i\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2018-04-17T08:39:55.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681534,\n          \"occurrence\": 0,\n          \"final_mark\": 118,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954760,\n          \"project\": {\n            \"id\": 1401,\n            \"name\": \"matcha\",\n            \"slug\": \"42cursus-matcha\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2017-10-21T13:54:23.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681551,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954777,\n          \"project\": {\n            \"id\": 1649,\n            \"name\": \"Internship II - Peer Video\",\n            \"slug\": \"internship-ii-internship-ii-peer-video\",\n            \"parent_id\": 1644\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2018-08-28T13:21:42.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681552,\n          \"occurrence\": 0,\n          \"final_mark\": 118,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954778,\n          \"project\": {\n            \"id\": 1648,\n            \"name\": \"Internship II - Company Final Evaluation\",\n            \"slug\": \"internship-ii-internship-ii-company-final-evaluation\",\n            \"parent_id\": 1644\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2018-08-24T11:33:09.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1170756,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 2335272,\n          \"project\": {\n            \"id\": 1190,\n            \"name\": \"roger-skyline-1\",\n            \"slug\": \"roger-skyline-1\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2019-12-21T20:20:59.448Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-24T20:20:59.475Z\"\n        },\n        {\n          \"id\": 1681531,\n          \"occurrence\": 0,\n          \"final_mark\": 125,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954757,\n          \"project\": {\n            \"id\": 1644,\n            \"name\": \"Internship II\",\n            \"slug\": \"internship-ii\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2018-08-28T13:21:43.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681530,\n          \"occurrence\": 0,\n          \"final_mark\": 125,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954756,\n          \"project\": {\n            \"id\": 1405,\n            \"name\": \"darkly\",\n            \"slug\": \"42cursus-darkly\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2017-11-28T18:03:50.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681543,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954770,\n          \"project\": {\n            \"id\": 1645,\n            \"name\": \"internship II - Contract Upload\",\n            \"slug\": \"internship-ii-internship-ii-contract-upload\",\n            \"parent_id\": 1644\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2018-03-23T14:10:08.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681545,\n          \"occurrence\": 0,\n          \"final_mark\": 125,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954771,\n          \"project\": {\n            \"id\": 1639,\n            \"name\": \"Internship I - Duration\",\n            \"slug\": \"internship-i-internship-i-duration\",\n            \"parent_id\": 1638\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2017-07-13T15:24:05.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681546,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954773,\n          \"project\": {\n            \"id\": 1640,\n            \"name\": \"internship I - Contract Upload\",\n            \"slug\": \"internship-i-internship-i-contract-upload\",\n            \"parent_id\": 1638\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2017-07-13T15:24:06.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681548,\n          \"occurrence\": 0,\n          \"final_mark\": 111,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954774,\n          \"project\": {\n            \"id\": 1642,\n            \"name\": \"internship I - Company Final Evaluation\",\n            \"slug\": \"internship-i-internship-i-company-final-evaluation\",\n            \"parent_id\": 1638\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2018-04-17T08:39:55.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681549,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954775,\n          \"project\": {\n            \"id\": 1643,\n            \"name\": \"Internship I - Peer Video\",\n            \"slug\": \"internship-i-internship-i-peer-video\",\n            \"parent_id\": 1638\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2018-01-10T11:55:46.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681558,\n          \"occurrence\": 0,\n          \"final_mark\": 54,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954784,\n          \"project\": {\n            \"id\": 1610,\n            \"name\": \"Day 02\",\n            \"slug\": \"42cursus-piscine-ruby-on-rails-day-02\",\n            \"parent_id\": 1482\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2017-09-02T13:20:48.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681559,\n          \"occurrence\": 0,\n          \"final_mark\": 57,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954786,\n          \"project\": {\n            \"id\": 1611,\n            \"name\": \"Day 03\",\n            \"slug\": \"42cursus-piscine-ruby-on-rails-day-03\",\n            \"parent_id\": 1482\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2017-09-02T13:21:15.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681560,\n          \"occurrence\": 0,\n          \"final_mark\": 52,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954787,\n          \"project\": {\n            \"id\": 1612,\n            \"name\": \"Day 04\",\n            \"slug\": \"42cursus-piscine-ruby-on-rails-day-04\",\n            \"parent_id\": 1482\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2017-09-02T13:21:45.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681562,\n          \"occurrence\": 0,\n          \"final_mark\": 67,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 2954788,\n          \"project\": {\n            \"id\": 1618,\n            \"name\": \"Rush 00\",\n            \"slug\": \"piscine-ruby-on-rails-rush-00\",\n            \"parent_id\": 791\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2016-12-12T11:14:22.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681563,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 2954790,\n          \"project\": {\n            \"id\": 1613,\n            \"name\": \"Day 05\",\n            \"slug\": \"42cursus-piscine-ruby-on-rails-day-05\",\n            \"parent_id\": 1482\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2017-01-23T15:45:59.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681565,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 2954791,\n          \"project\": {\n            \"id\": 1614,\n            \"name\": \"Day 06\",\n            \"slug\": \"42cursus-piscine-ruby-on-rails-day-06\",\n            \"parent_id\": 1482\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2017-09-02T13:22:49.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681566,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 2954793,\n          \"project\": {\n            \"id\": 1615,\n            \"name\": \"Day 07\",\n            \"slug\": \"42cursus-piscine-ruby-on-rails-day-07\",\n            \"parent_id\": 1482\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2016-12-19T08:51:44.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681567,\n          \"occurrence\": 0,\n          \"final_mark\": 60,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954794,\n          \"project\": {\n            \"id\": 1616,\n            \"name\": \"Day 08\",\n            \"slug\": \"42cursus-piscine-ruby-on-rails-day-08\",\n            \"parent_id\": 1482\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2016-12-18T10:28:33.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681568,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 2954795,\n          \"project\": {\n            \"id\": 1617,\n            \"name\": \"Day 09\",\n            \"slug\": \"42cursus-piscine-ruby-on-rails-day-09\",\n            \"parent_id\": 1482\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2016-12-19T08:51:36.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681569,\n          \"occurrence\": 0,\n          \"final_mark\": 0,\n          \"status\": \"finished\",\n          \"validated?\": false,\n          \"current_team_id\": 2954796,\n          \"project\": {\n            \"id\": 1619,\n            \"name\": \"Rush 01\",\n            \"slug\": \"piscine-ruby-on-rails-rush-01\",\n            \"parent_id\": 791\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2018-04-24T12:17:53.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 1681556,\n          \"occurrence\": 0,\n          \"final_mark\": 79,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954783,\n          \"project\": {\n            \"id\": 1609,\n            \"name\": \"Day 01\",\n            \"slug\": \"42cursus-piscine-ruby-on-rails-day-01\",\n            \"parent_id\": 1482\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2017-04-14T12:09:05.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        },\n        {\n          \"id\": 438788,\n          \"occurrence\": 1,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 1472260,\n          \"project\": {\n            \"id\": 96,\n            \"name\": \"Savoir Relier\",\n            \"slug\": \"savoir-relier\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [1],\n          \"marked_at\": \"2016-11-13T17:02:42.006Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2016-11-13T17:02:40.889Z\"\n        },\n        {\n          \"id\": 1681532,\n          \"occurrence\": 0,\n          \"final_mark\": 100,\n          \"status\": \"finished\",\n          \"validated?\": true,\n          \"current_team_id\": 2954759,\n          \"project\": {\n            \"id\": 1396,\n            \"name\": \"camagru\",\n            \"slug\": \"42cursus-camagru\",\n            \"parent_id\": null\n          },\n          \"cursus_ids\": [21],\n          \"marked_at\": \"2017-06-26T21:53:01.000Z\",\n          \"marked\": true,\n          \"retriable_at\": \"2019-12-19T23:00:00.000Z\"\n        }\n      ],\n      \"languages_users\": [\n        {\n          \"id\": 131203,\n          \"language_id\": 2,\n          \"user_id\": 19265,\n          \"position\": 1,\n          \"created_at\": \"2018-10-19T11:21:57.397Z\"\n        }\n      ],\n      \"achievements\": [\n        {\n          \"id\": 116,\n          \"name\": \"1.21 Gigawatts ?!\",\n          \"description\": \"Participer au Time Capsule et se laisser un petit mot.\",\n          \"tier\": \"easy\",\n          \"kind\": \"social\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/116/SOC014.svg\",\n          \"nbr_of_success\": null,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/116/users\"\n        },\n        {\n          \"id\": 40,\n          \"name\": \"404 - Sleep not found\",\n          \"description\": \"Etre logué 24h de suite. (à bosser, ofc !)\",\n          \"tier\": \"easy\",\n          \"kind\": \"scolarity\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/40/SCO001.svg\",\n          \"nbr_of_success\": null,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/40/users\"\n        },\n        {\n          \"id\": 41,\n          \"name\": \"All work and no play makes Jack a dull boy\",\n          \"description\": \"Etre logué 90h sur une semaine. \",\n          \"tier\": \"easy\",\n          \"kind\": \"scolarity\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/41/SCO001.svg\",\n          \"nbr_of_success\": null,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/41/users\"\n        },\n        {\n          \"id\": 107,\n          \"name\": \"And now my watch begins\",\n          \"description\": \"Rejoindre les tuteurs.\",\n          \"tier\": \"none\",\n          \"kind\": \"scolarity\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/107/SCO0017.svg\",\n          \"nbr_of_success\": null,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/107/users\"\n        },\n        {\n          \"id\": 17,\n          \"name\": \"Bonus Hunter\",\n          \"description\": \"Valider 1 projet avec la note maximum.\",\n          \"tier\": \"easy\",\n          \"kind\": \"project\",\n          \"visible\": false,\n          \"image\": \"/uploads/achievement/image/17/PRO005.svg\",\n          \"nbr_of_success\": 1,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/17/users\"\n        },\n        {\n          \"id\": 18,\n          \"name\": \"Bonus Hunter\",\n          \"description\": \"Valider 3 projets avec la note maximum.\",\n          \"tier\": \"medium\",\n          \"kind\": \"project\",\n          \"visible\": false,\n          \"image\": \"/uploads/achievement/image/18/PRO005.svg\",\n          \"nbr_of_success\": 3,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/18/users\"\n        },\n        {\n          \"id\": 114,\n          \"name\": \"Business Angel\",\n          \"description\": \"Valider un partenariat.\",\n          \"tier\": \"none\",\n          \"kind\": \"project\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/114/PRO014.svg\",\n          \"nbr_of_success\": null,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/114/users\"\n        },\n        {\n          \"id\": 4,\n          \"name\": \"Code Explorer\",\n          \"description\": \"Valider son premier projet.\",\n          \"tier\": \"none\",\n          \"kind\": \"project\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/4/PRO002.svg\",\n          \"nbr_of_success\": 1,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/4/users\"\n        },\n        {\n          \"id\": 5,\n          \"name\": \"Code Explorer\",\n          \"description\": \"Valider 3 projets.\",\n          \"tier\": \"none\",\n          \"kind\": \"project\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/5/PRO002.svg\",\n          \"nbr_of_success\": 3,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/5/users\"\n        },\n        {\n          \"id\": 6,\n          \"name\": \"Code Explorer\",\n          \"description\": \"Valider 10 projets.\",\n          \"tier\": \"none\",\n          \"kind\": \"project\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/6/PRO002.svg\",\n          \"nbr_of_success\": 10,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/6/users\"\n        },\n        {\n          \"id\": 7,\n          \"name\": \"Code Explorer\",\n          \"description\": \"Valider 21 projets.\",\n          \"tier\": \"none\",\n          \"kind\": \"project\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/7/PRO002.svg\",\n          \"nbr_of_success\": 21,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/7/users\"\n        },\n        {\n          \"id\": 65,\n          \"name\": \"Come to the dark side, we have cookies\",\n          \"description\": \"Devenir bocalien.\",\n          \"tier\": \"none\",\n          \"kind\": \"scolarity\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/65/SCO010.svg\",\n          \"nbr_of_success\": null,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/65/users\"\n        },\n        {\n          \"id\": 44,\n          \"name\": \"Curious wanderer\",\n          \"description\": \"S'être logué une fois dans chaque cluster.\",\n          \"tier\": \"none\",\n          \"kind\": \"scolarity\",\n          \"visible\": false,\n          \"image\": \"/uploads/achievement/image/44/SCO002.svg\",\n          \"nbr_of_success\": null,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/44/users\"\n        },\n        {\n          \"id\": 46,\n          \"name\": \"Film buff\",\n          \"description\": \"Regarder 1 video sur l'e-learning.\",\n          \"tier\": \"none\",\n          \"kind\": \"pedagogy\",\n          \"visible\": false,\n          \"image\": \"/uploads/achievement/image/46/PED005.svg\",\n          \"nbr_of_success\": 1,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/46/users\"\n        },\n        {\n          \"id\": 47,\n          \"name\": \"Film buff\",\n          \"description\": \"Regarder 3 videos sur l'e-learning.\",\n          \"tier\": \"none\",\n          \"kind\": \"pedagogy\",\n          \"visible\": false,\n          \"image\": \"/uploads/achievement/image/47/PED005.svg\",\n          \"nbr_of_success\": 3,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/47/users\"\n        },\n        {\n          \"id\": 45,\n          \"name\": \"Home is where the code is\",\n          \"description\": \"S'être logué dans le même cluster un mois de suite.\",\n          \"tier\": \"none\",\n          \"kind\": \"scolarity\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/45/SCO002.svg\",\n          \"nbr_of_success\": null,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/45/users\"\n        },\n        {\n          \"id\": 103,\n          \"name\": \"I am the watcher on the walls\",\n          \"description\": \"Surveiller 1 examen en tant que tuteur.\",\n          \"tier\": \"none\",\n          \"kind\": \"scolarity\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/103/SCO0016.svg\",\n          \"nbr_of_success\": 1,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/103/users\"\n        },\n        {\n          \"id\": 31,\n          \"name\": \"I found the answer\",\n          \"description\": \"Valider le level 21 et être prêt à affronter le monde extérieur !\",\n          \"tier\": \"none\",\n          \"kind\": \"pedagogy\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/31/PED003.svg\",\n          \"nbr_of_success\": null,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/31/users\"\n        },\n        {\n          \"id\": 82,\n          \"name\": \"I have no idea what I'm doing\",\n          \"description\": \"Faire une soutenance sans avoir validé le projet.\",\n          \"tier\": \"none\",\n          \"kind\": \"pedagogy\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/82/PED011.svg\",\n          \"nbr_of_success\": null,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/82/users\"\n        },\n        {\n          \"id\": 109,\n          \"name\": \"I’ll make him an offer he can’t refuse\",\n          \"description\": \"Participer au programme de parrainage en tant que parrain.\",\n          \"tier\": \"none\",\n          \"kind\": \"pedagogy\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/109/PED014.svg\",\n          \"nbr_of_success\": null,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/109/users\"\n        },\n        {\n          \"id\": 84,\n          \"name\": \"I'm reliable !\",\n          \"description\": \"Participer à 21 soutenances d'affilée sans en manquer aucune.\",\n          \"tier\": \"easy\",\n          \"kind\": \"pedagogy\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/84/PED009.svg\",\n          \"nbr_of_success\": 21,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/84/users\"\n        },\n        {\n          \"id\": 87,\n          \"name\": \"I post, therefore I am\",\n          \"description\": \"Poster 1 message sur le forum.\",\n          \"tier\": \"none\",\n          \"kind\": \"social\",\n          \"visible\": false,\n          \"image\": \"/uploads/achievement/image/87/SOC005.svg\",\n          \"nbr_of_success\": 1,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/87/users\"\n        },\n        {\n          \"id\": 36,\n          \"name\": \"It's a rich man's world\",\n          \"description\": \"Avoir 100 points de wallet.\",\n          \"tier\": \"none\",\n          \"kind\": \"social\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/36/SOC004.svg\",\n          \"nbr_of_success\": 100,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/36/users\"\n        },\n        {\n          \"id\": 37,\n          \"name\": \"It's a rich man's world\",\n          \"description\": \"Avoir 200 points de wallet.\",\n          \"tier\": \"none\",\n          \"kind\": \"social\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/37/SOC004.svg\",\n          \"nbr_of_success\": 200,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/37/users\"\n        },\n        {\n          \"id\": 155,\n          \"name\": \"Je voudrais un croissant\",\n          \"description\": \"Visiter le campus de Paris\",\n          \"tier\": \"none\",\n          \"kind\": \"scolarity\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/155/BADGE_SCOLARITY_paris.svg\",\n          \"nbr_of_success\": null,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/155/users\"\n        },\n        {\n          \"id\": 88,\n          \"name\": \"Love me, I'm famous\",\n          \"description\": \"Avoir été upvoté 1 fois sur le forum.\",\n          \"tier\": \"none\",\n          \"kind\": \"social\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/88/SOC006.svg\",\n          \"nbr_of_success\": 1,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/88/users\"\n        },\n        {\n          \"id\": 94,\n          \"name\": \"Love me, I'm famous\",\n          \"description\": \"Avoir été upvoté 10 fois sur le forum.\",\n          \"tier\": \"none\",\n          \"kind\": \"social\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/94/SOC006.svg\",\n          \"nbr_of_success\": 10,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/94/users\"\n        },\n        {\n          \"id\": 95,\n          \"name\": \"Love me, I'm famous\",\n          \"description\": \"Avoir été upvoté 42 fois sur le forum. Ne seront comptés que 25 upvotes par personne au maximum.\",\n          \"tier\": \"none\",\n          \"kind\": \"social\",\n          \"visible\": false,\n          \"image\": \"/uploads/achievement/image/95/SOC006.svg\",\n          \"nbr_of_success\": 42,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/95/users\"\n        },\n        {\n          \"id\": 25,\n          \"name\": \"Rigorous Basterd\",\n          \"description\": \"Valider 3 projets d'affilée (journées de piscines comprises).\",\n          \"tier\": \"none\",\n          \"kind\": \"project\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/25/PRO010.svg\",\n          \"nbr_of_success\": 3,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/25/users\"\n        },\n        {\n          \"id\": 26,\n          \"name\": \"Rigorous Basterd\",\n          \"description\": \"Valider 10 projets d'affilée (journées de piscines comprises).\",\n          \"tier\": \"easy\",\n          \"kind\": \"project\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/26/PRO010.svg\",\n          \"nbr_of_success\": 10,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/26/users\"\n        },\n        {\n          \"id\": 27,\n          \"name\": \"Rigorous Basterd\",\n          \"description\": \"Valider 21 projets d'affilée (journées de piscines comprises).\",\n          \"tier\": \"medium\",\n          \"kind\": \"project\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/27/PRO010.svg\",\n          \"nbr_of_success\": 21,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/27/users\"\n        },\n        {\n          \"id\": 28,\n          \"name\": \"Rigorous Basterd\",\n          \"description\": \"Valider 42 projets d'affilée (journées de piscines comprises).\",\n          \"tier\": \"hard\",\n          \"kind\": \"project\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/28/PRO010.svg\",\n          \"nbr_of_success\": 42,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/28/users\"\n        },\n        {\n          \"id\": 39,\n          \"name\": \"Sleep is for the weak\",\n          \"description\": \"Obtenir les achievements \\\"404 - Sleep not found\\\" et \\\"In the name of Nicolas !\\\"\",\n          \"tier\": \"none\",\n          \"kind\": \"scolarity\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/39/SCO001.svg\",\n          \"nbr_of_success\": null,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/39/users\"\n        },\n        {\n          \"id\": 115,\n          \"name\": \"Venture Capitalist\",\n          \"description\": \"Valider un partenariat avec la note 125.\",\n          \"tier\": \"none\",\n          \"kind\": \"project\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/115/PRO016.svg\",\n          \"nbr_of_success\": null,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/115/users\"\n        },\n        {\n          \"id\": 1,\n          \"name\": \"Welcome, Cadet !\",\n          \"description\": \"Tu as réussi ta piscine C. Bienvenue à 42 !\",\n          \"tier\": \"none\",\n          \"kind\": \"project\",\n          \"visible\": true,\n          \"image\": \"/uploads/achievement/image/1/PRO001.svg\",\n          \"nbr_of_success\": null,\n          \"users_url\": \"https://api.intra.42.fr/v2/achievements/1/users\"\n        }\n      ],\n      \"titles\": [\n        {\n          \"id\": 12,\n          \"name\": \"Altruist %login\"\n        },\n        {\n          \"id\": 42,\n          \"name\": \"Venture Capitalist %login\"\n        },\n        {\n          \"id\": 82,\n          \"name\": \"[DEPRECATED] %login\"\n        }\n      ],\n      \"titles_users\": [\n        {\n          \"id\": 499,\n          \"user_id\": 19265,\n          \"title_id\": 12,\n          \"selected\": false\n        },\n        {\n          \"id\": 1178,\n          \"user_id\": 19265,\n          \"title_id\": 42,\n          \"selected\": false\n        },\n        {\n          \"id\": 3571,\n          \"user_id\": 19265,\n          \"title_id\": 82,\n          \"selected\": false\n        }\n      ],\n      \"partnerships\": [\n        {\n          \"id\": 366,\n          \"name\": \"42cursus - [bocal] Développement web 6 mois\",\n          \"slug\": \"42cursus-bocal-developpement-web-6-mois\",\n          \"difficulty\": 42000,\n          \"url\": \"https://api.intra.42.fr/v2/partnerships/42cursus-bocal-developpement-web-6-mois\",\n          \"partnerships_users_url\": \"https://api.intra.42.fr/v2/partnerships/42cursus-bocal-developpement-web-6-mois/partnerships_users\",\n          \"partnerships_skills\": [\n            {\n              \"id\": 850,\n              \"partnership_id\": 366,\n              \"skill_id\": 7,\n              \"value\": 4200.0,\n              \"created_at\": \"2019-12-20T11:33:20.393Z\",\n              \"updated_at\": \"2019-12-20T11:33:20.393Z\"\n            },\n            {\n              \"id\": 849,\n              \"partnership_id\": 366,\n              \"skill_id\": 6,\n              \"value\": 18900.0,\n              \"created_at\": \"2019-12-20T11:33:20.391Z\",\n              \"updated_at\": \"2019-12-20T11:33:20.391Z\"\n            },\n            {\n              \"id\": 848,\n              \"partnership_id\": 366,\n              \"skill_id\": 16,\n              \"value\": 10500.0,\n              \"created_at\": \"2019-12-20T11:33:20.389Z\",\n              \"updated_at\": \"2019-12-20T11:33:20.389Z\"\n            },\n            {\n              \"id\": 847,\n              \"partnership_id\": 366,\n              \"skill_id\": 12,\n              \"value\": 8400.0,\n              \"created_at\": \"2019-12-20T11:33:20.387Z\",\n              \"updated_at\": \"2019-12-20T11:33:20.387Z\"\n            }\n          ]\n        },\n        {\n          \"id\": 45,\n          \"name\": \"[bocal] Développement web 6 mois\",\n          \"slug\": \"bocal-developpement-web-6-mois\",\n          \"difficulty\": 1000,\n          \"url\": \"https://api.intra.42.fr/v2/partnerships/bocal-developpement-web-6-mois\",\n          \"partnerships_users_url\": \"https://api.intra.42.fr/v2/partnerships/bocal-developpement-web-6-mois/partnerships_users\",\n          \"partnerships_skills\": [\n            {\n              \"id\": 106,\n              \"partnership_id\": 45,\n              \"skill_id\": 12,\n              \"value\": 200.0,\n              \"created_at\": \"2016-02-25T13:55:06.254Z\",\n              \"updated_at\": \"2016-02-25T13:55:06.254Z\"\n            },\n            {\n              \"id\": 107,\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffakenine%2Fomniauth-marvin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffakenine%2Fomniauth-marvin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffakenine%2Fomniauth-marvin/lists"}