Merge branch 'master' into 'production'
Master See merge request Romulus21/portal!55
This commit is contained in:
73
.gitlab-ci.yml
Normal file
73
.gitlab-ci.yml
Normal file
@@ -0,0 +1,73 @@
|
|||||||
|
# This file is a template, and might need editing before it works on your project.
|
||||||
|
# Official framework image. Look for the different tagged releases at:
|
||||||
|
# https://hub.docker.com/r/library/php
|
||||||
|
image: php:latest
|
||||||
|
|
||||||
|
# Pick zero or more services to be used on all builds.
|
||||||
|
# Only needed when using a docker container to run your tests in.
|
||||||
|
# Check out: http://docs.gitlab.com/ce/ci/docker/using_docker_images.html#what-is-a-service
|
||||||
|
services:
|
||||||
|
- mysql:latest
|
||||||
|
|
||||||
|
variables:
|
||||||
|
MYSQL_DATABASE: project_name
|
||||||
|
MYSQL_ROOT_PASSWORD: secret
|
||||||
|
|
||||||
|
# This folder is cached between builds
|
||||||
|
# http://docs.gitlab.com/ce/ci/yaml/README.html#cache
|
||||||
|
cache:
|
||||||
|
paths:
|
||||||
|
- vendor/
|
||||||
|
- node_modules/
|
||||||
|
|
||||||
|
# This is a basic example for a gem or script which doesn't use
|
||||||
|
# services such as redis or postgres
|
||||||
|
before_script:
|
||||||
|
# Update packages
|
||||||
|
- apt-get update -yqq
|
||||||
|
# Prep for Node
|
||||||
|
- apt-get install gnupg -yqq
|
||||||
|
# Upgrade to Node 8
|
||||||
|
- curl -sL https://deb.nodesource.com/setup_8.x | bash -
|
||||||
|
# Install dependencies
|
||||||
|
- apt-get install git nodejs libcurl4-gnutls-dev libicu-dev libmcrypt-dev libvpx-dev libjpeg-dev libpng-dev libxpm-dev zlib1g-dev libfreetype6-dev libxml2-dev libexpat1-dev libbz2-dev libgmp3-dev libldap2-dev unixodbc-dev libpq-dev libsqlite3-dev libaspell-dev libsnmp-dev libpcre3-dev libtidy-dev -yqq
|
||||||
|
# Install php extensions
|
||||||
|
- docker-php-ext-install mbstring pdo_mysql curl json intl gd xml zip bz2 opcache
|
||||||
|
# Install & enable Xdebug for code coverage reports
|
||||||
|
- pecl install xdebug
|
||||||
|
- docker-php-ext-enable xdebug
|
||||||
|
# Install Composer and project dependencies.
|
||||||
|
- curl -sS https://getcomposer.org/installer | php
|
||||||
|
- php composer.phar install
|
||||||
|
# Install Node dependencies.
|
||||||
|
# comment this out if you don't have a node dependency
|
||||||
|
- npm install
|
||||||
|
# Copy over testing configuration.
|
||||||
|
# Don't forget to set the database config in .env.testing correctly
|
||||||
|
# DB_HOST=mysql
|
||||||
|
# DB_DATABASE=project_name
|
||||||
|
# DB_USERNAME=root
|
||||||
|
# DB_PASSWORD=secret
|
||||||
|
- cp .env.testing .env
|
||||||
|
# Run npm build
|
||||||
|
# comment this out if you don't have a frontend build
|
||||||
|
# you can change this to to your frontend building script like
|
||||||
|
# npm run build
|
||||||
|
- npm run dev
|
||||||
|
# Generate an application key. Re-cache.
|
||||||
|
- php artisan key:generate
|
||||||
|
- php artisan config:cache
|
||||||
|
# Run database migrations.
|
||||||
|
- php artisan migrate
|
||||||
|
# Run database seed
|
||||||
|
- php artisan db:seed
|
||||||
|
|
||||||
|
test:
|
||||||
|
script:
|
||||||
|
# run laravel tests
|
||||||
|
- php vendor/bin/phpunit --coverage-text --colors=never
|
||||||
|
# run frontend tests
|
||||||
|
# if you have any task for testing frontend
|
||||||
|
# set it in your package.json script
|
||||||
|
# comment this out if you don't have a frontend test
|
||||||
|
- npm test
|
||||||
19
app/Http/Controllers/AutomationController.php
Normal file
19
app/Http/Controllers/AutomationController.php
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class AutomationController extends Controller
|
||||||
|
{
|
||||||
|
public function home()
|
||||||
|
{
|
||||||
|
$url = "http://192.168.1.32/meteo/meteo/api/?device=all&instant";
|
||||||
|
$client = new \GuzzleHttp\Client();
|
||||||
|
|
||||||
|
$promise = $client->requestAsync('GET', $url);
|
||||||
|
$response = $promise->wait();
|
||||||
|
|
||||||
|
return $response->getBody()->getContents();
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
<script>
|
<script>
|
||||||
export default {
|
export default {
|
||||||
name: 'DomoticHome',
|
name: 'AutomaticLinksHome',
|
||||||
data: function () {
|
data: function () {
|
||||||
return {
|
return {
|
||||||
links: [
|
links: [
|
||||||
56
resources/js/views/Automation/AutomaticMeteoHome.vue
Normal file
56
resources/js/views/Automation/AutomaticMeteoHome.vue
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<div class="m-2">
|
||||||
|
<div class="card">
|
||||||
|
<div class="text-black m-2 p-2 flex flex-col">
|
||||||
|
<h2>Météo Home</h2>
|
||||||
|
<ul class="mt-2">
|
||||||
|
<li v-for="(captor, index) in captors" :key="index" class="block mb-4">
|
||||||
|
<div class="flex justify-between items-baseline mb-2">
|
||||||
|
<span class="font-bold text-lg">{{ captor.device }}</span>
|
||||||
|
<span class="text-sm">{{ captor.date_meteo }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="flex flex-no-wrap text-sm -m-1">
|
||||||
|
<span v-if="captor.temperature" class="mx-1">{{ floated(captor.temperature) }} <span class="font-semibold text-xs">°C</span></span>
|
||||||
|
<span v-if="captor.humidite" class="mx-1">{{ floated(captor.humidite) }} <span class="font-semibold text-xs">%</span></span>
|
||||||
|
<span v-if="captor.pression" class="mx-1">{{ floated(captor.pression) }} <span class="font-semibold text-xs">hPa</span></span>
|
||||||
|
<span v-if="captor.lumiere" class="mx-1">{{ captor.lumiere }}</span>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
name: 'AutomaticMeteoHome',
|
||||||
|
data: function () {
|
||||||
|
return {
|
||||||
|
captors: null,
|
||||||
|
}
|
||||||
|
},
|
||||||
|
mounted() {
|
||||||
|
// eslint-disable-next-line no-undef
|
||||||
|
axios.get('/api/automation/home')
|
||||||
|
.then(response => {
|
||||||
|
this.captors = response.data.data
|
||||||
|
console.log(response.data.data)
|
||||||
|
})
|
||||||
|
.catch(() => {
|
||||||
|
console.log('Unable to fetch memos.')
|
||||||
|
})
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
floated: function (value) {
|
||||||
|
return value.toFixed(2)
|
||||||
|
}
|
||||||
|
},
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -4,7 +4,8 @@
|
|||||||
<div class="flex flex-wrap -m-2 mt-2">
|
<div class="flex flex-wrap -m-2 mt-2">
|
||||||
<OpenWeatherCard class="w-full sm:w-1/2 md:w-1/3 lg:w-1/4" />
|
<OpenWeatherCard class="w-full sm:w-1/2 md:w-1/3 lg:w-1/4" />
|
||||||
<MemoHome class="w-full sm:w-1/2 md:w-1/3 lg:w-1/4" />
|
<MemoHome class="w-full sm:w-1/2 md:w-1/3 lg:w-1/4" />
|
||||||
<DomoticHome class="w-full sm:w-1/2 md:w-1/3 lg:w-1/4" />
|
<AutomaticLinksHome class="w-full sm:w-1/2 md:w-1/3 lg:w-1/4" />
|
||||||
|
<AutomaticMeteoHome class="w-full sm:w-1/2 md:w-1/3 lg:w-1/4" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
@@ -12,12 +13,13 @@
|
|||||||
<script>
|
<script>
|
||||||
import OpenWeatherCard from './Meteo/OpenWeatherCard'
|
import OpenWeatherCard from './Meteo/OpenWeatherCard'
|
||||||
import MemoHome from './Memo/MemoHome'
|
import MemoHome from './Memo/MemoHome'
|
||||||
import DomoticHome from './Domotics/DomoticHome'
|
import AutomaticLinksHome from './Automation/AutomaticLinksHome'
|
||||||
|
import AutomaticMeteoHome from './Automation/AutomaticMeteoHome'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Home',
|
name: 'Home',
|
||||||
components: {
|
components: {
|
||||||
OpenWeatherCard, MemoHome, DomoticHome
|
OpenWeatherCard, MemoHome, AutomaticLinksHome, AutomaticMeteoHome
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
@@ -30,6 +30,7 @@ Route::middleware('auth:api')->group(function () {
|
|||||||
// '/friend-request' => 'FriendRequestController',
|
// '/friend-request' => 'FriendRequestController',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
Route::get('/automation/home', 'AutomationController@home');
|
||||||
Route::post('/images/users/{users}', 'ImageController@users');
|
Route::post('/images/users/{users}', 'ImageController@users');
|
||||||
Route::post('/images/memos/{memo}', 'ImageController@memos');
|
Route::post('/images/memos/{memo}', 'ImageController@memos');
|
||||||
Route::patch('/to-do-lists/{toDoList}/to-do/{toDo}/change', 'ToDoController@changeOrder');
|
Route::patch('/to-do-lists/{toDoList}/to-do/{toDo}/change', 'ToDoController@changeOrder');
|
||||||
|
|||||||
Reference in New Issue
Block a user