@naotty

Tech Lunch 2018/04/18

tech-lunch

Tech Lunch について

毎週水曜日の昼時間に弁当を食べながら最近気になる技術だったり製品だったり試したことなどを共有しています。
参加する方は弁当が支給されます。
まとめを共有する為、発表した内容をまとめて共有できる部分はどんどん共有していこうということで毎週記事を作成することにしました。

naotty

個人プロジェクトをやります

業務で手一杯で初回から進捗なし(^^;

気になった記事など

xdkang

シンガポールで広範なキャッシュレスシステム (PayLah! & PayNow)

  • PayLah!
     - DBS銀行(東南アジアで最大の銀行の一つ)によってスマホアプリ。AlibabaのAliPayと同様にデジタル支払いサービスで、アプリで振替、振替要求、QRコードで振り込みができる。

  • PayNow
     - 自分の電話番号あるいはマイナンバーを銀行に登録すれば自分の口座に繋ぐ。他人の電話番号やマイナンバーさえわかったらネットバンキングで簡単にお金を振替できる。色々の管理をバイパスしシンガポールの異なる銀行間でもすぐに行えるサービス。

jhonyspicy

Folkloreatelier/laravel-graphql というパッケージを使ってLaravelにGraphQLの機能を追加しましたので、ページャーをつけます。

Create pagaination and read from APIs こちらのIssueが参考になりました。

Queryのresolve()でLaravelのpaginateを返します。
(念のためバリデーションも追加してあります。)

<?php

class ItemsQuery extends Query
{
    use ShouldValidate;

    public function type()
    {
        return GraphQL::type('ItemsType');
    }

    public function args()
    {
        return [
            'page'  => ['type' => Type::int(), 'rules' => ['integer', 'min:1']],
            'count' => ['type' => Type::int(), 'rules' => ['integer', 'between:1,30']],
        ];
    }

    public function resolve($root, $args, $context, ResolveInfo $info)
    {
        $count = array_get($args, 'count', 25);
        $page  = array_get($args, 'page', 1);

        return Items::paginate($count, ['*'], 'page', $page);
    }
}

するとTypeのそれぞれのfieldのresolveの第一引数に先ほどのpaginateが渡ってくるのでそこでいい感じにするとうまいこと機能してくれました。

<?php

class ItemsType extends GraphQLType
{
    public function fields()
    {
        return [
            'pageInfo' => [
                'type' => GraphQL::type('PageInfo')
                'resolve' => function ($root) {
                    return array_except($root->toArray(), ['data']);
                }
            ],
            'items'    => [
                'type'    => Type::listOf(GraphQL::type('Item')),
                'resolve' => function ($root) {
                    return $root->items();
                },
            ],
        ];
    }
}

atomita

hyperapp-AdminLTEを使っている案件でdemo

AdminLTEで実装されているjQueryのpluginと、Dashboardの表示に利用されているlibraryをhyperappから使えるようにするのは出来ており、menuなどを案件ようにしたものをdemoしました。  
hyperappはLifecycle Eventselementが取得できるので、jQueryとの連携がやりやすい印象。
まだ、bootstrapなどのjQuery pluginを簡単に使えるようにしていないので、順次実装していく予定です。


その他のタグ

関連する記事